右值引用通常会提高 C++ 程序的性能。但它们不能直接在 C++03 编译器中使用。幸运boost::move
的是,即使在 C++03 中似乎也能模仿它:
右值引用是 C++0x 的一个主要特性,它支持 C++ 值的移动语义。但是,我们不需要 C++0x 编译器来利用移动语义。Boost.Move 在 C++03 编译器中模拟 C++0x 移动语义,并允许编写在 C++03 和 C++0x 编译器中最佳工作的可移植代码。
像用 C++98/03 编写的标准库之类的东西不会从中受益,boost::move
因为它们需要重新编写。(新版本的标准库如 VC10 已使用右值引用重写。)
boost::move
但我想知道自从1.48 引入以来,有多少 Boost 库被重写了?