我在使用新的 c++11std::thread
接口时遇到了问题。
我不知道如何将对 a 的引用传递给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);
有没有办法做到这一点,或者根本不可能?
注意:从编译错误看来,它似乎来自已删除的构造函数......