0

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?

chrisaycock
  • 36,470
  • 14
  • 88
  • 125
RoundPi
  • 5,819
  • 7
  • 49
  • 75

2 Answers2

2

Looking through the Boost version history, I see that Unordered was updated in 1.48 and Thread was updated in 1.50. I can't see any others that have adopted Boost.Move.

chrisaycock
  • 36,470
  • 14
  • 88
  • 125
  • Thanks. Are you aware of any report say how much VC11/VC10 version of STL efficiency has been increased because of re-written in c++ 11? – RoundPi Oct 19 '12 at 16:51
0

I've just checked Boost 1.51.0 and it seems that boost::move is supported by the following libraries:

  • Container (including vector, list, map etc.)
  • Interprocess (including smart_ptr and unique_ptr)
  • Intrusive
  • Thread
  • Unordered

Just search for BOOST_RV_REF in Boost headers which is a sign of boost::move support.

Adam Romanek
  • 1,809
  • 1
  • 19
  • 36