std::thread新しい c++11インターフェイスを使用する際に問題が発生しました。スレッドが実行する関数へ
の参照を渡す方法がわかりません。std::ostream
整数を渡す例を次に示します (コンパイルして、gcc 4.6 で期待どおりに動作します)。
void foo(int &i) {
/** do something with i **/
std::cout << i << std::endl;
}
int k = 10;
std::thread t(foo, k);
しかし、ostream を渡そうとすると、コンパイルされません:
void foo(std::ostream &os) {
/** do something with os **/
os << "This should be printed to os" << std::endl;
}
std::thread t(foo, std::cout);
それを行う方法はありますか、それともまったく不可能ですか??
注意:コンパイルエラーから、削除されたコンストラクターから来ているようです...