eventpp is a C++ event library that provides tools that allow your application components to communicate with each other by dispatching events and listening to them. With eventpp you can implement signal/slot mechanism, or observer pattern, very easily.
* Supports both synchronous event dispatching and asynchronous event queue.
* Configurable and extensible with policies and mixins.
* Supports event filter via mixins.
* Supports nested event. During handling an event a listener can safely dispatch event, append/prepend/insert/remove other listeners.
* Thread safety. Supports multiple threading.
* Exception safety. Most operations guarantee strong exception safety.
* Well tested. Backed by unit tests.
* The EventQueue can process 10M events in 1 second (10K events per millisecond).
* The CallbackList can invoke 100M callbacks in 1 second (100K callbacks per millisecond).
* The CallbackList can add/remove 5M callbacks in 1 second (5K callbacks per millisecond).
* The listeners and events can be any type, no need to inherit from any base class.
* Header only, no source file, no need to build. No dependencies on other libraries.
* Requires C++ 11 (tested with MSVC 2017, MSVC 2015, MinGW (Msys) gcc 7.2, and Ubuntu gcc 5.4).
* Written in portable and standard C++, no hacks or quirks.