0

一般に、右辺値参照は 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 ライブラリが書き直されたのでしょうか?

4

2 に答える 2

2

Boostのバージョン履歴を見てみると、 Unorderedが1.48、Threadが1.50にアップデートされていることがわかります。Boost.Moveを採用している企業は他に見当たりません。

于 2012-10-19T16:31:39.963 に答える
0

Boost 1.51.0 を確認boost::moveしたところ、次のライブラリでサポートされているようです。

  • コンテナ ( vector、などlistを含むmap)
  • インタープロセス (smart_ptrとを含むunique_ptr)
  • 押し付けがましい
  • スレッド
  • 順不同

サポートBOOST_RV_REFの兆候である Boost ヘッダーで検索するだけです。boost::move

于 2012-10-27T07:40:04.067 に答える