#include #include #include template struct extended_back_machine : public boost::msm::back::state_machine { void test() { std::cout << "test" << std::endl; } }; struct fsm_ : public boost::msm::front::state_machine_def { struct State : public boost::msm::front::state<> { template void on_entry(Event const&, FSM& fsm) { fsm.test(); } }; typedef State initial_state; }; int main() { typedef extended_back_machine fsm; fsm m; m.start(); return 0; }