Boost logo

Boost :

Subject: [boost] [msm]intarnal_transition_table's behavior
From: Takatoshi Kondo (kondo_at_[hidden])
Date: 2011-07-19 21:52:09


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




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