Prior to C++11, all of the special members functions were totally independent. If you declare or don’t declare any one of the default constructor, the copy constructor, the copy assignment operator, or the destructor, that has no effect whatsoever on the other three. But when C++11 introduced…
rvalues vs. return values
...is that easy!…
Implicit move constructor
In C++11 it was decided that the compiler will implicitly generate move constructor as member-wise moves, unless you have explicitly defined a copy constructor or copy/move assignment or a destructor. The goal was to achieve a balance between breaking some of existing code and providing useful optimizations based…
std::remove_reference<T>
Nice explanation on how it works, and how it is used in std::move.…
Effective C++11/14 Sample by Scott Meyers
…