如何使用仿函数创建boost :: packaged_task?

时间:2012-06-05 23:45:56

标签: c++ boost functor

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

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

Worker-class中的运算符看起来像这样:

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

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

  

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

我做错了什么?

1 个答案:

答案 0 :(得分:4)

boost :: packaged_task expects a functor object的构造函数(左值或右值),而不是指向它的指针。

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

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