Disconnecting signal handlers
Let's take another look at a Signal's connect method:
sigc::signal<void,int>::iterator signal<void,int>::connect( const sigc::slot<void,int>& );
Notice that the return value is of type sigc::signal<void,int>::iterator. This can be implicitely converted into a sigc::connection which in turn can be used to control the connection. By keeping a connection object you can disconnect its associated signal handler using the method sigc::connection::disconnect().