
Hi Leandro
I saw your email[1] via the gmane web interface (did you Cc me?
Not exactly, I forwarded the message: To: llucarella@integratech.com.ar Message-ID: <37229.1564.qm@web33507.mail.mud.yahoo.com>
maybe you mail was eaten by my antispam =).
Probably...
I don't really know how to handle "partial" completion transitions (I mean, with guards). But simple completion transitions could be expressed something like:
struct B; struct A: sc::simple_state< A, Machine > { typedef sc::completion_transition< B > reactions; };
I guess is better to have partial support than no support at all =)
It seems what you want to do with completion transitions can easily be achieved by posting an event in the entry action of a state? That is, the only additional work you'd have to do in comparison to a library supported scenario is to derive from state instead of simple_state and post an event in the ctor? A state that automatically posts an event in its entry action is useful in other scenarios, please see Dynamic choice points under: <http://www.boost.org/libs/statechart/doc/rationale.html#Limitations> I'm considering to add such a class. I'll have to think about the naming and the exact interface though.
Another simple question about statechart: it can handle this?
,-----------------. | S |<--- T | | o--+--> A --> B <--o | | | `-----------------´
I want the state machine to start at A, but any other time S is entered, I want to start at B. AFAIK this is possible in UML.
Really? A pointer would be appreciated.
Can I express that in boost.statechart?
Not directly, again you could find out which state you want to enter in a initial helper state entry action and then post an appropriate event.
I think I hit an static assertion when trying to do that (/usr/include/boost/statechart/simple_state.hpp:885: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’).
You passed mpl::list filled with multiple initial states? If so, then you tried to create a state with multiple orthogonal regions: <http://www.boost.org/libs/statechart/doc/tutorial.html#OrthogonalStates> -- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.