私はプレーンな C スタティック ライブラリにこのコードを持っています:
extern "C" {
typedef void (__cdecl* VisitChildren)(Option*);
void __cdecl DoVisitChildren(Children* List, VisitChildren Visitor);
}
そして、ラムダを使用していくつかの C++ コード (単体テスト) から使用しようとしています。
...
DoVisitChildren(children, [&] (Option* option) {
...
});
コンパイラ エラーが発生しますC2664 ... cannot convert parameter 2 from 'unittests::UnitTest1::TestBuild::<lambda_b286d160b9bab3e09ab93cd59fc49f0b>' to 'VisitChildren'
キャプチャ '&' を削除すると、コンパイルして機能しますが、いくつかのビットとボブをキャプチャする必要があります。
これは可能ですか?