1

boost::thread次のようにデタッチされた多くのインスタンスを使用しているコードベースがあります

boost::thread th( boost::bind(&myFunc,var1, var2 ));

単純に検索置換を実行して使用を開始できますstd::threadか?

あまりにも置き換える必要がありboost::bindますstd::bindか、それとも不要ですか?

(これまでのところ問題なく検索置換boost::shared_ptrを実行できることがわかりました。std::shared_ptrboost::scoped_ptrstd::unique_ptr

私のプラットフォームは、Windows 7 上の Visual Studio 11 です。

4

1 に答える 1

2

単純に検索置換を実行してstd::threadの使用を開始できますか?

の現在のバージョンにboost::threadは、含まれていない機能がいくつかありますstd::thread

  • タイムアウトで参加する
  • スレッド属性
  • 中断
  • yield()およびsleep()(非推奨)

ブーストのドキュメントを参照してください。ラベルはEXTENSION。これらのいずれも使用していない場合は、直接交換する必要があります。

コメントで述べたように、の古いバージョンはboost::thread破壊に対して異なる動作をしていました。スレッドがまだ結合可能である場合、スレッドを切り離します。代わりstd::threadに現在のboost::thread呼び出し。std::terminate

私も交換boost::bindする必要がありstd::bindますか、それとも不要ですか?

それは必要ありません。thread任意の呼び出し可能なタイプを指定できます。またbind、可変個引数のコンストラクターがあるため、使用する必要はまったくありません。

std::thread th(&myFunc, var1, var2);
于 2012-11-15T16:42:51.297 に答える