【c++】thread std::invoke未找到匹配的重载函数
thread std::invoke未找到匹配的重载函数
·
【c++】thread std::invoke未找到匹配的重载函数
记录一个多线程传参错误
主要报错有:
std::invoke未找到匹配的重载函数
未能使函数模板unknown-type std::invoke…专用化
unknown-type std::invoke…应输入1个参数却提供了10个
**报错原因:**多线程传入的参数类型有误
修改:如以下代码,func()有三种参数:普通变量a、指针b、引用c,多线程传参时应该分别输入a,&b,std::ref ( c ) ,即主函数中的命令应该为:thread t(func,a,&b,std::ref( c));
void func(int a, int* b, int& c) {
std::cout << "success" << std::endl;
}
int main()
{
int a=0;
int b=1;
int c=2;
thread t(func,a,&b,std::ref(c));
t.join();
return 0;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)