我正在尝试使用这样的仿函数创建一个打包的任务:
Worker w(someString, anotherString, i*length,length);
boost::packaged_task<Match> task(&w);
Worker-class中的运算符看起来像这样:
Class Worker {
Match operator()()
{
return matchText(..., ..., ..., ...);
}
}
编译器给我错误(翻译了德语的错误消息)
C2064:语句导致没有传递0参数的函数
我做错了什么?
答案 0 :(得分:4)
boost :: packaged_task expects a functor object的构造函数(左值或右值),而不是指向它的指针。
boost::packaged_task<Match> task(w);
或
boost::packaged_task<Match> task(std::move(w));