Boost logo

Boost :

Subject: Re: [boost] [msm]intarnal_transition_table's behavior
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2011-07-21 16:34:15


> Hello,
>
> When I was trying to answer an another thread,
> I encountered strange behavior.
> (Re: [boost] [msm]exit pseudo state and event)
>
> See 18_InternalTransitionTableTest.cpp. (attached file)
>
> I believe that internal_transition_table should work correctly
> without transition_table.
>
> Here is internal_transition_table.
>
> // Internal Transition table
> struct internal_transition_table : mpl::vector<
> // Event Action Guard
> msmf::Internal < Event1, Action1_1 ,Guard1_1 >
>> {};
>
> But Event1 isn't dispatched. I don't understand why.
>
> When I add transition_table that includes the Event1,
> internal_transition_table works correctly.
>
> #if 1 // Why is it needed?
> // Transition table
> struct transition_table:mpl::vector<
> // Start Event Next Action Guard
> msmf::Row < State1_1, Event1, State1_2, msmf::none, msmf::none >
> // OK
> // msmf::Row < State1_1, Event2, State1_2, msmf::none, msmf::none
> > // NG
> > {};
> #endif
>
> But if transition_table don't have Event1,
> internal_transition_table doesn't work correctly.
>
> msmf::Row < State1_1, Event2, State1_2, msmf::none, msmf::none >
> // NG
>
> I suspect it is bug.
> How do you think?
>
> Thanks,
> Takatoshi

Hi Takatoshi,

you're right, it's a bug. I just fixed it in the trunk (rev. 73289).

Thanks for the report,
Christophe

PS: I'm in vacations from next week for 4 weeks, so I might be less
responsive as I will have a pretty bad connection.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk