2

我正在尝试使用这样的仿函数创建打包任务:

Worker w(someString, anotherString, i*length,length);
boost::packaged_task<Match> task(&w);

Worker 类中的运算符如下所示:

Class Worker {
   Match operator()()
   {
      return matchText(..., ..., ..., ...);
   }
}

编译器给我错误(从德语翻译错误消息)

C2064:语句导致没有传递 0 个参数的函数

我究竟做错了什么?

4

1 回答 1

5

boost::packaged_task 的构造函数需要一个仿函数对象(左值或右值),而不是指向它的指针。

boost::packaged_task<Match> task(w);

或者

boost::packaged_task<Match> task(std::move(w));
于 2012-06-06T02:10:13.163 回答