Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct E {
- };
- struct A : public boost::msm::front::state<> {
- template <class TStateMachine>
- void on_entry(E const& event, TStateMachine& stateMachine) {
- }
- template <class TStateMachine>
- void on_exit(E const& event, TStateMachine& stateMachine) {
- }
- };
- struct B: public boost::msm::front::state<> {
- template <class TStateMachine>
- void on_entry(E const& event, TStateMachine& stateMachine) {
- }
- template <class TStateMachine>
- void on_exit(E const& event, TStateMachine& stateMachine) {
- }
- };
- struct SubMachineDefinition : public boost::msm::front::state_machine_def<SubMachineDefinition> {
- typedef boost::msm::front::state_machine_def<SubMachineDefinition> Base;
- typedef A initial_state;
- struct transition_table : boost::mpl::vector<
- typename Base::template _row<A, E, B>
- > {};
- };
- struct SuperMachineDefinition : public boost::msm::front::state_machine_def<SuperMachineDefinition > {
- typedef SubMachineDefinition initial_state;
- struct transition_table : boost::mpl::vector<> {};
- };
- void main() {
- boost::msm::back::state_machine<SuperMachineDefinition> states;
- states.start();
- states.process_event(E()); // This crashes
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement