スロットを持つオブジェクトが破棄されると、シグナルが自動的にスロットを切断するという特定の機能を備えたシグナル/スロット C++ ライブラリが必要です。
Boost::signals2 は、boost::shared_ptr で作成されたオブジェクトに対してのみこの機能を提供し、どこでも std::shared_ptr を使用し続けたいと考えています。std::shared_ptr で動作させるオプションがありますが、いくつかの特殊なテンプレートを作成する必要があり、それがどのように機能するかについての情報はなく、一般的には避けたいと思います (インターネットのどこかにコードがない限り、しかし見つけられませんでした)。
Qt シグナルにこの機能があることは知っていますが、Qt は大きすぎてすべてのプロジェクトで使用できません。