関数getTotalがあります:
int getTotal( const HitMap& hitMap, bool( *accept)(int chan) )
ここで、2 番目の引数は、コンテナー hitMap のどのメンバーを合計に追加するかを指定する bool 関数です。
私はラムダでそれを呼び出そうとしています。これは機能します:
auto boxresult =
getTotal(piHits, [](int pmt)->bool
{ return (pmt/100) == 1;} );
しかし、これはしません:
int sector = 100;
auto boxresult =
getTotal(piHits, [sector](int pmt)->bool
{ return (pmt/sector) == 1;} );
エラーが発生します
cannot convert ‘main(int, char**)::<lambda(int)>’ to ‘bool (*)(int)’
for argument ‘2’ to ‘int getTotal(const HitMap&, bool (*)(int))’
私のコンパイラ(GCC 4.6.3)から。試し[§or]
てみ[=sector]
ましたが、違いはありませんでした。
私は何を間違っていますか?