>it took a little long but I managed to make plan A work. If you provide an internal transition table (internal_transition_table) in your fsm definition, you can avoid >having to define a second region with a single state. Instead you get a transition looking like this:

>struct internal_transition_table : boost::mpl::vector<

>Internal < event , action , guard >

> {};

>In this case, action and guard are functors but it works with other rows too.

>You will need the latest trunk version.


Thanks, excellent work, I’ll give this a try. What are the trade-offs/advantages between this approach and plan b? Are there any performance differences, or mostly just style methodology?