diff --git a/cxx/mcc_fsm.h b/cxx/mcc_fsm.h index 0add90f..a11080f 100644 --- a/cxx/mcc_fsm.h +++ b/cxx/mcc_fsm.h @@ -17,14 +17,17 @@ namespace traits { template -concept fsm_event_c = std::is_default_constructible_v && std::is_move_constructible_v && std::movable; +concept fsm_event_c = + std::is_default_constructible_v && std::is_move_constructible_v && std::movable && requires { + { T::ID } -> std::same_as; // static constant member of event identificator + }; template concept fsm_state_c = std::is_default_constructible_v && std::is_move_constructible_v && std::movable && requires { [](std::type_identity) {}(T::transition_t); - { T::name } -> std::same_as; // static constant of state name + { T::ID } -> std::same_as; // static constant member of state identificator }; } // namespace traits