Skip to content

Instantly share code, notes, and snippets.

#include <cassert>
#include <variant>
#include <optional>
#include <string>
template <typename Child, typename Initial, typename Accepting, typename... Rest>
struct StateMachine {
using StateVariant = std::variant<Initial, Accepting, Rest...>;
template <typename Events>