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 に答える