Collection of Finite State Machine Implementations
Inspired by Mateusz Pusz's CppCon 2018 talk.
Minimalistic lightweight implementation of a FSM where events do not store any data. This uses a single dynamic dispatch approach.
Classic FSM which uses two dynamic dispatches, enabling events to store internal data.
Static polymorphism approach which does not use any dynamic dispatching. Events are still able to hold internal data.