Why std::move is just a cast, how it kills RVO if used wrong, and the mechanics of ownership transfer.