O'Reilly logo
  • Jagadeesh Pakaravoor thinks this is interesting:

Constructors, destructors, and copy and move operations for a type are not logically separate. We must define them as a matched set or suffer logical or performance problems. If a class X has a destructor that performs a nontrivial task, such as free-store deallocation or lock release, the class is likely to need the full complement of functions:

From

Cover of A Tour of C++
  • 4. Classes
  • from A Tour of C++
  • by Bjarne Stroustrup
  • Publisher: Addison-Wesley Professional
  • Released: September 2013

Note

Vector with upper-case 'V' => our own vector.

By notation here vector with lower-case 'v' is the std::vector (and its not that author is referring here).