
On 24 June 2010 22:56, Richard Szabo <sz.richard@googlemail.com> wrote:
On 24 June 2010 22:46, Juraj Ivančić <juraj.ivancic@gmail.com> wrote:
On 24.6.2010 22:02, Richard Szabo wrote:
It would be nice to able to defer event by it's base types it would make code maintenance easier not have to declare all events one by one for deferring.
Did you try activating deferred events and adding a 'Defer' row in the transition table like described here
No I did not try I will.
I'm now using Row and Defer functor I have now an other problem whit the : void defer_event(Event const& e) { // to call this function, you need either a state with a deferred_events typedef // or that the fsm provides the activate_deferred_events typedef BOOST_MPL_ASSERT(( has_fsm_deferred_events<library_sm> )); execute_return (library_sm::*pf) (Event const& evt)= &library_sm::process_event; Event temp (e); ::boost::function<execute_return () > f= ::boost::bind(pf, this,temp); post_deferred_event(f); } actually it tries to instantiate the base class ( Event temp (e); ) but in my case the base class is an abstract class -> compiler error; and after deferring I want to dispatch the original derived event not the copy constructed base class instance of the event.
Thanks for the tipp.
I think this will allow deferral by base type.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost