Boost logo

Boost :

Subject: Re: [boost] [msm] Nested submachines and explicit state entry
From: Richard Szabo (sz.richard_at_[hidden])
Date: 2010-06-10 02:12:35

On 9 June 2010 19:36, Christophe Henry
<christophe.j.henry_at_[hidden]> wrote:
>>> There are several reasons to this and it took me a while to figure out
>>> what was happening.
>>> The first one is that there are 2 errors in the example:
>>> RunningStateMachine::Inner1::direct<RunningStateMachine_::Inner1_> should be:
>>> RunningStateMachine::direct<RunningStateMachine_::Inner1>
>>> As you are directly entering RunningStateMachine, not Inner1.
>>actually I have made 2 mistakes :). One above the second is that I used Inner1_
>>which is a frontend instead of Inner1 caused that the on initial transition
>>is getting triggered after entry of Inner1
> Ah yes I forgot that I corrected that one too.
>>I found it even strange that it compiles when the frontend of and
>>inner state machine is used in the outer state machine transition
> This surprises me a little because I tried with g++ 4.4 to replace in
> the corrected example Inner1 by Inner1_ in SM1's table and the
> compiler correctly complained. What did you do?

Well I have added to the little example a PseudoEntry1 state for the
I have added a new row to the RunningStateMachine_ transition table
form the PseudoEntry1
on reception of even1 go to Inner1_ and with VC9 it compiles with both
ways without and error.
_row < PseudoEntry1 , event1 , Inner1_

_row < PseudoEntry1 , event1 , Inner1

see attachment.

> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at