• Flexible multicast callbacks for functions and function objects
• A robust mechanism for triggering and handling events
• Compatibility with function object factories, such as Boost.Bind and Boost.Lambda
The Boost.Signals library reifies signals and slots, where a signal is something that can be “emitted,” and slots are connections that receive such signals. This is a well-known design pattern that goes under a few different names—Observer, signals/slots, publisher/subscriber, events (and event targets)—but these names all refer to the same thing, which is a one-to-many relation between some source of information and instances that are interested in knowing when that ...