# Boost.Signals

The Boost.Signals library is an implementation of a managed signals and slots system. Signals represent callbacks with multiple targets, and are also called publishers or events in similar systems. Signals 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 (or, more properly, objects that occur as part of the 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.

When signals are connected to multiple slots, there is a question regarding the relationship between the return values of the slots and the return value of the signals. Boost.Signals allows the user to specify the manner in which multiple return values are combined.

## Table of Contents

- Tutorial
- Reference
  - Class template `signal`
  - Class templates `signalN`
  - Class template `slot`
  - Class `trackable`
  - Header `boost/connection.hpp`
  - Class template `last_value`
  - Function template `visit_each`
- Frequently Asked Questions
- Design of Boost.Signals
- Design Rationale and Comparisons with Other Signal/Slot Implementations
- Revision History

Last modified: Fri Oct 11 05:41:39 EDT 2002