The Boost.Signals library is an implementation of a managed signals and slots system
Signals represent callbacks with multiple targets (also called events in similar systems). They are connected to some set of slots, which are callback receivers (also called event targets or subscribers), which are called when the signal is "emitted."
Signals and slots are managed, in that signals and slots track all connections and are capable of automatically disconnecting signal/slot connections when either is destroyed. This enables the user to make signal/slot connections without expending a great effort to manage the lifetimes of those connections with regard to the lifetimes of all objects involved.