我正在尝试使用如下函子创建一个打包任务:
Worker w(someString, anotherString, i*length,length);
boost::packaged_task<Match> task(&w);
Run Code Online (Sandbox Code Playgroud)
Worker 类中的运算符如下所示:
Class Worker {
Match operator()()
{
return matchText(..., ..., ..., ...);
}
}
Run Code Online (Sandbox Code Playgroud)
编译器给我错误(从德语翻译错误消息)
C2064:语句导致没有传递 0 个参数的函数
我究竟做错了什么?
boost::packaged_task 的构造函数需要一个函子对象(左值或右值),而不是指向它的指针。
boost::packaged_task<Match> task(w);
Run Code Online (Sandbox Code Playgroud)
或者
boost::packaged_task<Match> task(std::move(w));
Run Code Online (Sandbox Code Playgroud)