$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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;
     };