...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::move
// In header: <boost/move/algo/move.hpp> template<typename I, typename O> O move(I f, I l, O result);
Effects: Moves elements in the range [first,last) into the range [result,result + (last - first)) starting from first and proceeding to last. For each non-negative integer n < (last-first), performs *(result + n) = boost::move (*(first + n)).
Effects: result + (last - first).
Requires: result shall not be in the range [first,last).
Complexity: Exactly last - first move assignments.