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 implicitly 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().