0
私は、次のしている:クラスC
のboost::signal2
にC++のshared_ptrのstd ::バインドとstd ::機能
クラスB
リッスンをし、トリガークラスA
によって与えられたコールバックを実行し、それはクラスのメソッドを実行しますA
A
、B
とC
、D
はすべてstd::shared_ptr
です。
問題は、クラスD
がクラスB
へのポインタを離したとき、B
が原因でシグナルハンドラの削除されていないことです。私がboost::connection
の切断を呼び出しても、私は同じ問題を抱えています。
どのように私はそれを修正することができますか?
いくつかのコードを表示できますか? – Frank
はい、これは、人々が内部的に何が起こっているのかを理解するための十分なコードなしでは使用できません。 –
私はあなたが望むのは、シグナルハンドラのための['std :: weak_pointer'](http://en.cppreference.com/w/cpp/memory/weak_ptr)ですが、コードを持つことでこれをより簡単にすることに同意します理解する。 –