14 #include "../../base/type_traits.h" 24 template<
class States,
template<
typename>
typename Manager>
32 template<
class State,
class... Args>
34 constexpr
auto Index = mpl::type_list_index_v<State, type_list>;
35 managers_.template emplace<1 + Index>(args...);
43 std::visit(std::forward<Fun>(fun), managers_);
48 using type_list =
typename States::type_list;
52 template<
class T>
struct get_substate_manager_type {
53 using type = Manager<typename T::substates_type>;
58 using substates_manager_list = mpl::type_list_transform_t<type_list, get_substate_manager_type>;
65 substates_manager_list_fin,
66 std::variant>::result;
68 substates_manager_variant managers_;
void visit(Fun &&fun)
Visit current state_manager with a given visitor.
Definition: substate_manager_container.h:42
void create(Args &... args)
Create a new substate manager for a given state.
Definition: substate_manager_container.h:33
Append a type at the begining of the type_list.
Definition: type_traits.h:405
Definition: handle_result.h:14
Similarly to state_container this class is abstracting out the real storage mechanism for substates s...
Definition: substate_manager_container.h:25
reanme typelist
Definition: type_traits.h:393