std::thread参数传递包含引用时的注意事项

代码片段如下:

...
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()的包装来达到传递引用的目的。

猜你喜欢

转载自blog.csdn.net/xp178171640/article/details/111589422