#include #include #include #include #include #include #include #include using namespace std; namespace sc = boost::statechart; namespace mpl = boost::mpl; namespace BUG { struct evSay : sc::event{ }; struct top; struct c1; struct c2; struct c3; struct sm : public sc::state_machine { }; struct top : sc::simple_state > { typedef sc::simple_state > my_type; typedef sc::custom_reaction reactions; sc::result react(const evSay &) { cout<<"BUGGY"< > { }; struct c2 : sc::simple_state > { }; struct c3 : sc::state > { c3( my_context ctx) : my_base(ctx) { post_event( boost::intrusive_ptr< evSay > ( new evSay() ) ); } }; } int main() { BUG::sm* fsm = new BUG::sm(); fsm->initiate(); delete fsm; return 0; }