$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r51701 - sandbox/msm/boost/msm
From: christophe.j.henry_at_[hidden]
Date: 2009-03-11 10:24:20
Author: chenry
Date: 2009-03-11 10:24:19 EDT (Wed, 11 Mar 2009)
New Revision: 51701
URL: http://svn.boost.org/trac/boost/changeset/51701
Log:
fix compile problems VC8
Text files modified: 
   sandbox/msm/boost/msm/dispatch_table.hpp |    16 +++++++++-------                        
   sandbox/msm/boost/msm/metafunctions.hpp  |     2 ++                                      
   sandbox/msm/boost/msm/state_machine.hpp  |    14 +++++++++-----                          
   3 files changed, 20 insertions(+), 12 deletions(-)
Modified: sandbox/msm/boost/msm/dispatch_table.hpp
==============================================================================
--- sandbox/msm/boost/msm/dispatch_table.hpp	(original)
+++ sandbox/msm/boost/msm/dispatch_table.hpp	2009-03-11 10:24:19 EDT (Wed, 11 Mar 2009)
@@ -62,18 +62,20 @@
         struct execute_helper
         {
             template <class Sequence>
-            static std::pair<int,HandledEnum> execute(
-                Fsm& fsm, int state, pstate_base* all_states, Event const& evt,
-                typename ::boost::enable_if<typename ::boost::mpl::empty<Sequence>::type,void >::type* dmy=0)
+            static
+            typename ::boost::enable_if<typename ::boost::mpl::empty<Sequence>::type,std::pair<int,HandledEnum> >::type
+            execute(Fsm& fsm, int state, pstate_base* all_states, Event const& evt,
+                    ::boost::msm::dummy<0> = 0)
             {
                 // if at least one guard rejected, this will be ignored, otherwise will generate an error
                 return std::make_pair(state,HANDLED_FALSE);
             }
 
-            template <class Sequence>     
-            static std::pair<int,HandledEnum> execute(
-                  Fsm& fsm, int state, pstate_base* all_states, Event const& evt,
-                  typename ::boost::disable_if<typename ::boost::mpl::empty<Sequence>::type,void >::type* dmy=0)
+            template <class Sequence>
+            static
+            typename ::boost::disable_if<typename ::boost::mpl::empty<Sequence>::type,std::pair<int,HandledEnum> >::type
+            execute(Fsm& fsm, int state, pstate_base* all_states, Event const& evt,
+                    ::boost::msm::dummy<1> = 0)
             {
                 // try the first guard
                 typedef typename ::boost::mpl::front<Sequence>::type first_row;
Modified: sandbox/msm/boost/msm/metafunctions.hpp
==============================================================================
--- sandbox/msm/boost/msm/metafunctions.hpp	(original)
+++ sandbox/msm/boost/msm/metafunctions.hpp	2009-03-11 10:24:19 EDT (Wed, 11 Mar 2009)
@@ -21,6 +21,8 @@
 #include <boost/mpl/has_xxx.hpp>
 #include <boost/mpl/find_if.hpp>
 #include <boost/mpl/count_if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/not.hpp>
 
 #include <boost/type_traits/is_same.hpp>
 
Modified: sandbox/msm/boost/msm/state_machine.hpp
==============================================================================
--- sandbox/msm/boost/msm/state_machine.hpp	(original)
+++ sandbox/msm/boost/msm/state_machine.hpp	2009-03-11 10:24:19 EDT (Wed, 11 Mar 2009)
@@ -28,6 +28,8 @@
 #include <boost/mpl/front.hpp>
 #include <boost/mpl/has_xxx.hpp>
 #include <boost/mpl/logical.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/not.hpp>
 
 #include <boost/assert.hpp>
 #include <boost/type_traits.hpp>
@@ -238,7 +240,8 @@
     // get a state
     // as a pointer
     template <class State>
-    State get_state(typename ::boost::enable_if<typename ::boost::is_pointer<State>::type,void >::type* =0)
+    typename ::boost::enable_if<typename ::boost::is_pointer<State>::type,State >::type
+    get_state(::boost::msm::dummy<0> = 0)
     {
         typedef typename create_stt<Derived>::type stt;
         return &(static_cast<typename boost::add_reference<typename ::boost::remove_pointer<State>::type>::type > 
@@ -246,7 +249,8 @@
     }
     // as a reference
     template <class State>
-    State get_state(typename ::boost::enable_if<typename ::boost::is_reference<State>::type,void >::type* =0)
+    typename ::boost::enable_if<typename ::boost::is_reference<State>::type,State >::type
+    get_state(::boost::msm::dummy<1> = 0)
     {
         typedef typename create_stt<Derived>::type stt;
         return static_cast<State > 
@@ -984,11 +988,11 @@
                 // or state is a normal state and needs nothing except creation
         template <class StateType>
         typename ::boost::enable_if<
-					typename ::boost::mpl::and_<typename ::boost::mpl::not_
+            typename boost::mpl::and_<typename boost::mpl::not_
                                                     <typename has_exit_pseudo_states<StateType>::type>::type,
-									            typename ::boost::mpl::not_
+                                      typename boost::mpl::not_
                                                     <typename is_pseudo_exit<StateType>::type>::type
-			       >::type,BaseState*>::type
+                   >::type,BaseState*>::type
         new_state_helper( ::boost::msm::dummy<1> = 0) const
         {
             return new StateType;