
Andreas Huber wrote:
struct ev: sc::event< ev > {}; struct B; struct C; struct A: sc::simple_state< A, Machine > { typedef mpl::list< sc::completion_transition< >, sc::custom_reaction< ev > > reactions; sc::result react(const completion_event&) { if (guard) return transit< B >(); return discard_event(); } sc::result react(const ev&) { if (!guard) return transit< C >(); return discard_event(); } };
I'm not sure how this is an improvement over the choice-point-like class?
It improves readability and removes the need for a dummy intermediate class?
Again, this limitation can be overcome easily with the same trick. Specify a dummy outermost state as initial state and then post an event in the entry action that will trigger a transition to the desired state.
Ok, my main problem is gone. I can now express what I need with the intermediate dummy state trick. I think the improvements in this limitations are desirable but not critical, and maybe you are right and it's too much work for too little gain. Thanks for your help! -- Leandro Lucarella Integratech S.A. 4571-5252