Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;线程构造函数用法_C++_Multithreading_Std_Irrlicht - Fatal编程技术网

C++ c++;线程构造函数用法

C++ c++;线程构造函数用法,c++,multithreading,std,irrlicht,C++,Multithreading,Std,Irrlicht,在尝试使用std::threads时,我发现自己出现了这个错误 error C2064: term does not evaluate to a function taking 1 arguments File: functional Line:1152 在注释掉一些行之后,我发现错误来自构造函数 我还使用irrlicht作为事件变量 以下是线程的声明: t1=new thread((&EventReceiver::KeyInput3),event); 函数的标题: int Eve

在尝试使用std::threads时,我发现自己出现了这个错误

error C2064: term does not evaluate to a function taking 1 arguments 
File: functional
Line:1152
在注释掉一些行之后,我发现错误来自构造函数

我还使用irrlicht作为事件变量

以下是线程的声明:

t1=new thread((&EventReceiver::KeyInput3),event);
函数的标题:

int EventReceiver::KeyInput3(const SEvent& event)
尝试以各种方式构建它,但都没有成功。
我应该怎么做才能消除错误?

我猜
keyinport
不是一个静态成员函数,因此您需要首先传递一个指向
EventReceiver
实例的指针:

EventReceiver* p = ...;
std::thread t(&EventReceiver::KeyInput3, p, event);

我猜
keyinport
不是一个静态成员函数,因此您需要首先传递一个指向
EventReceiver
实例的指针:

EventReceiver* p = ...;
std::thread t(&EventReceiver::KeyInput3, p, event);

您必须在其他args之前将EventReceiver类对象传递给线程构造函数可能的重复项您必须在其他args之前将EventReceiver类对象传递给线程构造函数可能的重复项小加法:您可以传递指向对象的指针、对象、对对象的引用、,或指向对象的智能指针。小的添加:您可以传递指向对象的指针、对象、对象引用或指向对象的智能指针。