【发布时间】:2020-05-23 15:04:27
【问题描述】:
#include <thread>
void f(int*& ptr)
{
ptr = new int[4];
ptr[0] = 0;
ptr[1] = 1;
ptr[2] = 2;
ptr[3] = 3;
}
int main()
{
int* ptr;
std::thread thread{ f, ptr };
thread.join();
delete[] ptr;
return 0;
}
我不明白我错过了什么。我尝试了参考或非参考的不同组合,检查了我是否具有与文档中相同的格式。没有。我仍然收到此错误:
Error C2672: 'std::invoke': no matching overloaded function found
【问题讨论】:
-
请以文本的形式发布错误信息。 从不作为图像。谢谢。
-
您必须至少使用
std::ref(ptr)否则它将按值传递(但它可能会失败
标签: c++ multithreading c++11