代码片段如下:
...
void TestFunc(int& data)
{
...
}
int data = 0;
std::thread oneThread(testFunc, data); // 方式1 error
std::thread oneThread(TestFunc, std::ref(data)); // 方式2 ok
...
当构造std::thread
时需要传递引用对象时,直接使用使用方式1会编译报错,应该使用方式2通过std::ref()
的包装来达到传递引用的目的。