【问题标题】:Boost.Move integration with other Boost librariesBoost.Move 与其他 Boost 库的集成
【发布时间】:2012-10-19 16:25:55
【问题描述】:

右值 引用通常会提高 C++ 程序的性能。但它们不能直接在 C++03 编译器中使用。幸运的是boost::move 似乎能够在 C++03 中模拟它:

右值引用是 C++0x 的一个主要特性,支持移动语义 对于 C++ 值。但是,我们不需要 C++0x 编译器来获取 移动语义学的优势。 Boost.Move 模拟 C++0x 移动语义 在 C++03 编译器中,并允许编写有效的可移植代码 最适合 C++03 和 C++0x 编译器。

使用 C++98/03 编写的标准库之类的东西不会从 boost::move 中受益,因为它们需要重新编写。 (VC10 等标准库的新版本已经使用右值引用重写。)

但我想知道自从 1.48 引入 boost::move 以来,有多少 Boost 库被重写?

【问题讨论】:

    标签: c++ boost rvalue-reference


    【解决方案1】:

    查看Boost version history,我看到Unordered在1.48更新,Thread在1.50更新。我看不到其他采用 Boost.Move 的人。

    【讨论】:

    • 谢谢。您是否知道有任何报告说 VC11/VC10 版本的 STL 效率因为用 c++ 11 重写而提高了多少?
    【解决方案2】:

    我刚刚检查了 Boost 1.51.0,似乎以下库支持 boost::move

    • 容器(包括vectorlistmap等)
    • 进程间(包括smart_ptrunique_ptr
    • 侵入性
    • 线程
    • 无序

    只需在 Boost 标头中搜索 BOOST_RV_REF,这表示支持 boost::move

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-23
      • 2011-06-01
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      相关资源
      最近更新 更多