C++ Move Semantics
Move semantics transfer resources from an expiring object instead of making an expensive copy. std::move enables a move operation but does not itself move or destroy an object.
Transferring resource ownership with move constructors and move assignment.