Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78836 - trunk/boost/msm/back
From: christophe.j.henry_at_[hidden]
Date: 2012-06-06 16:08:45


Author: chenry
Date: 2012-06-06 16:08:44 EDT (Wed, 06 Jun 2012)
New Revision: 78836
URL: http://svn.boost.org/trac/boost/changeset/78836

Log:
fixed compiler error with fsm internal table and none event
Text files modified:
   trunk/boost/msm/back/dispatch_table.hpp | 15 ++++++++++++++-
   1 files changed, 14 insertions(+), 1 deletions(-)

Modified: trunk/boost/msm/back/dispatch_table.hpp
==============================================================================
--- trunk/boost/msm/back/dispatch_table.hpp (original)
+++ trunk/boost/msm/back/dispatch_table.hpp 2012-06-06 16:08:44 EDT (Wed, 06 Jun 2012)
@@ -313,8 +313,12 @@
 
         // this event is a compound one (not a real one, just one for use in event-less transitions)
         // Note this event cannot be used as deferred!
+ // case for internal transitions of this fsm
         template <class State>
- void operator()(boost::msm::wrap<State> const&)
+ typename ::boost::disable_if<
+ typename ::boost::is_same<State,Fsm>::type
+ ,void>::type
+ operator()(boost::msm::wrap<State> const&,boost::msm::back::dummy<0> = 0)
         {
             typedef typename create_stt<Fsm>::type stt;
             BOOST_STATIC_CONSTANT(int, state_id = (get_state_id<stt,State>::value));
@@ -322,6 +326,15 @@
             tofill_entries[state_id+1] = call_no_transition;
         }
 
+ template <class State>
+ typename ::boost::enable_if<
+ typename ::boost::is_same<State,Fsm>::type
+ ,void>::type
+ operator()(boost::msm::wrap<State> const&,boost::msm::back::dummy<1> = 0)
+ {
+ cell call_no_transition = &Fsm::default_eventless_transition;
+ tofill_entries[0] = call_no_transition;
+ }
         dispatch_table* self;
         cell* tofill_entries;
     };


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk