【问题标题】:c++ std::thread constructor usagec++ std::thread 构造函数用法
【发布时间】:2013-07-04 08:18:42
【问题描述】:

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

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

【问题讨论】:

标签: c++ multithreading std irrlicht


【解决方案1】:

我猜KeyInput不是静态成员函数,所以你需要先传递一个指向EventReceiver实例的指针:

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

【讨论】:

  • 小补充:你可以传递一个指向对象的指针,一个对象,一个对象的引用,或者一个指向对象的智能指针。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多