1

私はこれをやろうとしています:

boost::signals::connection c = somesignal.connect(
[c]()->void{
    // Do something
    c.disconnect();
})

これにより問題が発生しますか?

接続 c は、接続後にのみ割り当てられます。

ラムダは接続前に初期化する必要があります。

値によるキャプチャは機能しないようです。ただし、c はローカル変数にすぎないため、参照によってキャプチャすることはできません。

ラムダでない場合は、「somesignal」をキャプチャして、somesignal.disconnect(slot) を呼び出すことができます。ただし、ラムダの場合、スロットはそれ自体です。

4

1 に答える 1