Nice explanation on how it works, and how it is used in std::move.