Move semantics (introduced in C++11) transfer ownership of heap resources from temporary rvalues (`&&`) to new objects without allocating or copying memory buffers.
cpp
std::vector<int> a = {1, 2, 3};
std::vector<int> b = std::move(a); // a's internal pointer stolen by b