0

在尝试使用 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)

尝试以各种方式构建它,但没有奏效。我应该怎么做才能摆脱错误?

4

1 回答 1

3

我猜KeyInput不是静态成员函数,因此您需要将指针传递给EventReceiverfirst 的实例:

EventReceiver* p = ...;
std::thread t(&EventReceiver::KeyInput3, p, event);
于 2013-07-04T08:24:28.537 回答