#include struct event_handler { void operator()() { } }; int main() { event_handler eh; boost::signal sig; sig.connect(eh); sig.disconnect(eh); // VS2005 SP1 error C2678: binary '==' : no operator found which takes a left-hand operand of type 'const event_handler' (or there is no acceptable conversion) }