std::线程<未解析的重载函数类型>错误
std::thread <unresolved overloaded function type> error
我正在尝试从我的类中生成一个线程,并且该线程在我的类中执行特定方法。代码如下所示:
class ThreadClass{
int myThread(int arg){
// do something
}
void createThread(){
thread t = thread(myThread,10);
}
} ;
编译上的这段代码抛出一个错误,指出
std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = int (ThreadClass::*)(int), _Args = {int}]
no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘int (ThreadClass::*&&)(int)’
我不确定这里的实际错误是什么。有人可以帮助我吗?
谢谢。
问题是没有
对象就无法调用成员函数。提供指向this
的指针,以便使用当前对象:
thread t(&ThreadClass::myThread, this, 10);
您可以使用任何ThreadClass
对象的实例,但在您的情况下,这似乎是正确的做法this
。
注意:请记住,您需要引用创建的线程,以便以后可以执行join()
。
相关文章:
- 为什么使用SFINAE而不是函数重载
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- c++:可变模板和函数重载
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- 解决模板成员函数重载
- 为什么不允许成员函数和非成员函数之间的函数重载?
- 推断模板化函数中的函数重载
- C++复制函数重载导致"must be a nonstatic member function"错误
- 为什么 std::sort 找不到合适的(静态成员)函数重载?
- 可变参数泛型 lambda 和函数重载
- C++中的函数重载和继承
- 当有右值构造函数可用时,为什么从右值调用类引用构造函数重载?
- C/C++ 可变参数宏函数重载
- 将基类的成员函数重载到其他派生类C++
- C++ 函数重载匹配
- C++函数重载,具体步骤是什么
- C++:使用 param pack 显式调用函数重载
- 隐式生成的函数重载用于右值参数?
- 使用函数重载输入运算符
- 运算符重载函数上的函数重载