The disconnect_all function can be used to disconnect all SignalConsumers from a SignalProducer (or from the default SignalProducer of a component).

Here is an example:

signals::storage<void ()> banger; 
// counter will count the number of signals it receives       
signals::counter<void ()> counter;

connect(banger, counter);
banger(); // this signal will pass to counter
BOOST_CHECK_EQUAL(counter.count(), 1);

disconnect_all(banger);
banger(); // this signal will not pass to counter
BOOST_CHECK_EQUAL(counter.count(), 1);

signals::connection c = connect(banger, counter);
banger(); // this signal will pass to counter
BOOST_CHECK_EQUAL(counter.count(), 2);

c.disconnect();
banger(); // this signal will not pass to counter
BOOST_CHECK_EQUAL(counter.count(), 2);