#include #include #include struct A { boost::signals2::signal Signal; }; struct B { boost::signals2::signal Signal; }; int main() { boost::shared_ptr pA = boost::make_shared(); boost::shared_ptr pB = boost::make_shared(); pA->Signal.connect(pB->Signal); pA->Signal(); pB.reset(); pA->Signal(); return 0; }