Boost.Signals2 setzt das Signal-Slot-Konzept um. Dabei werden ein oder mehrere Funktionen – Slots genannt – mit einem Objekt verknüpft, das ein Signal aussenden kann. Jedes Mal, wenn das Signal ausgesendet wird, werden alle verknüpften Funktionen aufgerufen.
Das Signal-Slot-Konzept ist zum Beispiel in der Entwicklung von Anwendungen mit grafischen Benutzeroberflächen sinnvoll. Dort können Schaltflächen, die auf Benutzereingaben reagieren sollen, so modelliert sein, dass sie bei einem Klick ein Signal aussenden. Um auf Benutzereingaben reagieren zu können, könnten sie Verknüpfungen mit beliebig vielen Funktionen unterstützen. So könnte flexibel auf Ereignisse reagiert werden.
Sie können auch std::function
zur Ereignisbehandlung verwenden. Ein entscheidender Unterschied zwischen std::function
und Boost.Signals2 ist, dass mit std::function
nur eine Funktion verknüpft werden kann, während Boost.Signals2 die Verknüpfung eines Signals mit beliebig vielen Funktionen erlaubt. Boost.Signals2 unterstützt eine ereignisorientierte Programmierung wesentlich besser und sollte die erste Wahl sein, wenn Ereignisse verarbeitet werden müssen.
Boost.Signals2 ist der Nachfolger der Bibliothek Boost.Signals, die veraltet ist und in diesem Buch nicht vorgestellt wird.