方法重写线程C++中的概念
Method overriding concept in Thread C++
在我的代码中,有两个方法work((和work(var(,我想在线程下传递该函数,每当我传递其中一个方法时,我都会得到一个错误"初始化std::thread"没有匹配的构造函数;
我的代码:
void work(){ // something do}
void work(int var){// something do}
int main(){
std::thread myThread_1(work,34); // this line of code give me error
myThread_1.join();
return 0;
}
伙计们,我该怎么解决这个问题?请帮我
不能将重载函数作为参数传递。您需要:
显式转换为所需的重载:
std::thread myThread_1(static_cast<void (*)(int)>(work), 34);
或使用lambda:
std::thread myThread_1([](int var) { work(var); }, 34);
// or better yet:
std::thread myThread_1([] { work(34); });
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将OpenCV C++重写为EmguCV C#-如何使用指针
- 在 C++ 中用派生类型重写成员函数
- 在模板基类中为继承类中的可选重写生成虚拟方法
- 方法重写线程C++中的概念
- 为重写std::exception的库生成swig接口时出错
- 如何强制从重写方法调用重写的方法基方法?
- 用于C++的静态二进制检测或二进制重写工具和框架
- 如何将 if else 语句重写为 switch 语句
- 如何重写全局方法名称以在调用原始方法之前将我的代码推到前面
- 用 C 重写C++类
- 是否总是可以将使用递归编写的程序重写为不使用递归的程序C++,性能观点是什么?
- 重写虚拟函数和继承
- C++调用使用重写函数的父类函数
- 重写打印函数而不是覆盖基类
- 不允许在类定义之外重写
- C++有没有办法强制重写一组方法,如果其中一个方法在子类中具有重写?
- C++:从抽象类重写纯虚拟运算符重载
- 派生类调用父类的方法,该方法调用重写的虚拟方法调用错误的方法
- 重写函数不打印基类数据