シグナルハンドラの切断

シグナルのconnectメソッドについてもう一度見てみましょう:

sigc::signal<void,int>::iterator signal<void,int>::connect( const sigc::slot<void,int>& );

注目してほしいのは戻り値の型がsigc::signal<void,int>::iteratorであるということです。これはsigc::connectionに暗黙の変換を行うことが可能であり、sigc::connectionを使って接続のコントロールを行うことができます。connectionオブジェクトを保持することで、関連したシグナルハンドラの接続をそのメソッドsigc::connection::disconnect()を使って切断することができます。