Die Boost C++ Bibliotheken

Kapitel 67. Boost.Signals2

Inhaltsverzeichnis

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.