Rvalue references generally boost performance in a C++ program. But they are not available directly in a C++03 compiler. Fortunately boost::move
seems to be able to emulate it even in C++03:
Rvalue references are a major C++0x feature, enabling move semantics for C++ values. However, we don't need C++0x compilers to take advantage of move semanatics. Boost.Move emulates C++0x move semantics in C++03 compilers and allows writing portable code that works optimally in C++03 and C++0x compilers.
Things like the standard library written with C++98/03 will not benefit from boost::move
as they need to be re-written. (New versions of the standard library like VC10's have been re-written using rvalue references.)
But I am wondering how many Boost libraries have been re-written since boost::move
was introduced in 1.48?