$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60617 - in sandbox/msm/boost/msm: back front front/detail front/euml
From: christophe.j.henry_at_[hidden]
Date: 2010-03-15 13:13:22
Author: chenry
Date: 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
New Revision: 60617
URL: http://svn.boost.org/trac/boost/changeset/60617
Log:
cleanup
Added:
   sandbox/msm/boost/msm/front/completion_event.hpp   (contents, props changed)
   sandbox/msm/boost/msm/front/detail/common_states.hpp   (contents, props changed)
Text files modified: 
   sandbox/msm/boost/msm/back/dispatch_table.hpp      |     2                                         
   sandbox/msm/boost/msm/back/favor_compile_time.hpp  |     2                                         
   sandbox/msm/boost/msm/back/metafunctions.hpp       |    12 ++++----                                
   sandbox/msm/boost/msm/back/state_machine.hpp       |    22 ++++++++--------                        
   sandbox/msm/boost/msm/front/common_states.hpp      |    52 --------------------------------------- 
   sandbox/msm/boost/msm/front/euml/euml_typeof.hpp   |     4 +-                                      
   sandbox/msm/boost/msm/front/euml/state_grammar.hpp |    20 +++++++-------                          
   sandbox/msm/boost/msm/front/functor_row.hpp        |     4 +-                                      
   sandbox/msm/boost/msm/front/state_machine_def.hpp  |     4 +-                                      
   sandbox/msm/boost/msm/front/states.hpp             |    10 +++---                                  
   10 files changed, 41 insertions(+), 91 deletions(-)
Modified: sandbox/msm/boost/msm/back/dispatch_table.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/dispatch_table.hpp	(original)
+++ sandbox/msm/boost/msm/back/dispatch_table.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -183,7 +183,7 @@
     template <class EventType>
     struct default_init_cell<EventType,
                              typename ::boost::enable_if<
-                                typename is_automatic_event<EventType>::type>::type>
+                                typename is_completion_event<EventType>::type>::type>
     {
             default_init_cell(dispatch_table* self_,cell* tofill_entries_)
                     : self(self_),tofill_entries(tofill_entries_)
Modified: sandbox/msm/boost/msm/back/favor_compile_time.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/favor_compile_time.hpp	(original)
+++ sandbox/msm/boost/msm/back/favor_compile_time.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -219,7 +219,7 @@
     template <class EventType>
     struct default_init_cell<EventType,
                              typename ::boost::enable_if<
-                                typename is_automatic_event<EventType>::type>::type>
+                                typename is_completion_event<EventType>::type>::type>
     {
             default_init_cell(dispatch_table* self_,chain_row* tofill_entries_)
                     : self(self_),tofill_entries(tofill_entries_)
Modified: sandbox/msm/boost/msm/back/metafunctions.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/metafunctions.hpp	(original)
+++ sandbox/msm/boost/msm/back/metafunctions.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -51,7 +51,7 @@
 BOOST_MPL_HAS_XXX_TRAIT_DEF(not_real_row_tag)
 BOOST_MPL_HAS_XXX_TRAIT_DEF(event_blocking_flag)
 BOOST_MPL_HAS_XXX_TRAIT_DEF(explicit_entry_state)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(automatic_event)
+BOOST_MPL_HAS_XXX_TRAIT_DEF(completion_event)
 BOOST_MPL_HAS_XXX_TRAIT_DEF(no_exception_thrown)
 BOOST_MPL_HAS_XXX_TRAIT_DEF(no_message_queue)
 BOOST_MPL_HAS_XXX_TRAIT_DEF(activate_deferred_events)
@@ -436,10 +436,10 @@
 
 // returns a mpl::bool_<true> if State has any delayed event
 template <class Event>
-struct is_automatic_event  
+struct is_completion_event  
 {
     typedef typename ::boost::mpl::if_<
-        has_automatic_event<Event>,
+        has_completion_event<Event>,
         ::boost::mpl::bool_<true>,
         ::boost::mpl::bool_<false> >::type type;
 };
@@ -451,10 +451,10 @@
     typedef typename generate_event_set<Stt>::type event_list;
 
     typedef ::boost::mpl::bool_< ::boost::mpl::count_if<
-        event_list,is_automatic_event< ::boost::mpl::placeholders::_1 > >::value != 0> type;
+        event_list,is_completion_event< ::boost::mpl::placeholders::_1 > >::value != 0> type;
 };
 template <class Derived>
-struct find_automatic_events 
+struct find_completion_events 
 {
     typedef typename create_stt<Derived>::type Stt;
     typedef typename generate_event_set<Stt>::type event_list;
@@ -462,7 +462,7 @@
     typedef typename ::boost::mpl::fold<
         event_list, ::boost::mpl::set<>,
             ::boost::mpl::if_<
-			     is_automatic_event< ::boost::mpl::placeholders::_2>,
+			     is_completion_event< ::boost::mpl::placeholders::_2>,
                              ::boost::mpl::insert< ::boost::mpl::placeholders::_1, ::boost::mpl::placeholders::_2 >, 
                              ::boost::mpl::placeholders::_1 >
     >::type type;
Modified: sandbox/msm/boost/msm/back/state_machine.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/state_machine.hpp	(original)
+++ sandbox/msm/boost/msm/back/state_machine.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -934,7 +934,7 @@
             (call_init<InitEvent>(InitEvent(),this));
         // give a chance to handle an anonymous (eventless) transition
         handle_eventless_transitions_helper<library_sm> eventless_helper(this,true);
-        eventless_helper.process_automatic_event();
+        eventless_helper.process_completion_event();
 
     }
 
@@ -978,7 +978,7 @@
             // event can be handled, processing
             // handle with lowest priority event-less transitions
             handle_eventless_transitions_helper<library_sm> eventless_helper(this,(handled!=HANDLED_FALSE));
-            eventless_helper.process_automatic_event();
+            eventless_helper.process_completion_event();
 
             return ret_handled;
         }       
@@ -1315,7 +1315,7 @@
     struct handle_eventless_transitions_helper
     {
         handle_eventless_transitions_helper(library_sm* , bool ){}
-        void process_automatic_event(){}
+        void process_completion_event(){}
     };
     // otherwise 
     template <class StateType>
@@ -1323,16 +1323,16 @@
         <StateType, typename enable_if< typename ::boost::msm::back::has_fsm_eventless_transition<StateType>::type >::type>
     {
         handle_eventless_transitions_helper(library_sm* self_, bool handled_):self(self_),handled(handled_){}
-        void process_automatic_event()
+        void process_completion_event()
         {
             typedef typename ::boost::mpl::deref<
                 typename ::boost::mpl::begin<
-                    typename find_automatic_events<StateType>::type
+                    typename find_completion_events<StateType>::type
                         >::type
-            >::type first_automatic_event;
+            >::type first_completion_event;
             if (handled)
             {
-                self->process_event(first_automatic_event() );
+                self->process_event(first_completion_event() );
             }
         }
  
@@ -1417,8 +1417,8 @@
         // generate an error on every active state 
         // for state machine states contained in other state machines, do not handle
         // but let the containing sm handle the error
-        // automatic events do not produce an error
-        if (!handled && !is_contained() && !is_automatic_event<Event>::type::value)
+        // completion events do not produce an error
+        if (!handled && !is_contained() && !is_completion_event<Event>::type::value)
         {
             for (int i=0; i<nr_regions::value;++i)
             {	
@@ -2002,8 +2002,8 @@
         return HANDLED_DEFERRED;
     }
 
-    // called for automatic events. Default address set in the dispatch_table at init
-    // prevents no-transition detection for automatic events
+    // called for completion events. Default address set in the dispatch_table at init
+    // prevents no-transition detection for completion events
     template <class Event>
     static HandledEnum default_eventless_transition(library_sm& fsm, int, int , Event const& e)
     {
Modified: sandbox/msm/boost/msm/front/common_states.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/common_states.hpp	(original)
+++ sandbox/msm/boost/msm/front/common_states.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -12,12 +12,11 @@
 #define BOOST_MSM_FRONT_COMMON_STATES_H
 
 #include <boost/mpl/int.hpp>
-
 #include <boost/mpl/vector.hpp>
 #include <boost/fusion/container/map.hpp>
 #include <boost/fusion/include/at_c.hpp>
-
 #include <boost/type_traits/add_const.hpp>
+#include <boost/msm/front/detail/common_states.hpp>
 
 namespace boost { namespace msm { namespace front
 {
@@ -32,55 +31,6 @@
     virtual ~polymorphic_state() {}
 };
 
-template <class Attributes= ::boost::fusion::map<> >
-struct inherit_attributes
-{
-	// on the fly attribute creation capability
-	typedef Attributes		attributes_type;
-    template <class Index>
-    typename ::boost::fusion::result_of::at_key<attributes_type, 
-                                                Index>::type
-    get_attribute(Index const&) 
-    {
-        return ::boost::fusion::at_key<Index>(m_attributes);
-    }
-    
-    template <class Index>
-    typename ::boost::add_const<
-        typename ::boost::fusion::result_of::at_key<attributes_type,
-                                                    Index>::type>::type
-	get_attribute(Index const&)const 
-    {
-        return const_cast< 
-            typename ::boost::add_const< 
-                typename ::boost::fusion::result_of::at_key< attributes_type,
-                                                             Index >::type>::type>
-                                (::boost::fusion::at_key<Index>(m_attributes));
-    }
-
-private:
-	// attributes
-	Attributes m_attributes;
-};
-
-// the interface for all states. Defines entry and exit functions. Overwrite to implement for any state needing it.
-template<class USERBASE,class Attributes= ::boost::fusion::vector<> >
-struct state_base : public inherit_attributes<Attributes>, USERBASE
-{
-    typedef USERBASE		user_state_base;
-	typedef Attributes		attributes_type;
-
-    // empty implementation for the states not wishing to define an entry condition
-    // will not be called polymorphic way
-    template <class Event,class FSM>
-    void on_entry(Event const& ,FSM&){}
-    template <class Event,class FSM>
-    void on_exit(Event const&,FSM& ){}
-    // default (empty) transition table;
-    typedef ::boost::mpl::vector0<>  internal_transition_table;
-    typedef ::boost::mpl::vector0<>  transition_table;
-};
-
 }}}
 
 #endif //BOOST_MSM_FRONT_COMMON_STATES_H
Added: sandbox/msm/boost/msm/front/completion_event.hpp
==============================================================================
--- (empty file)
+++ sandbox/msm/boost/msm/front/completion_event.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -0,0 +1,25 @@
+// Copyright 2008 Christophe Henry
+// henry UNDERSCORE christophe AT hotmail DOT com
+// This is an extended version of the state machine available in the boost::mpl library
+// Distributed under the same license as the original.
+// Copyright for the original version:
+// Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed
+// under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_MSM_FRONT_COMMON_COMPLETION_EVENT_H
+#define BOOST_MSM_FRONT_COMMON_COMPLETION_EVENT_H
+
+namespace boost { namespace msm { namespace front
+{
+
+    struct none
+    {
+        typedef int completion_event;
+    };
+
+}}}
+
+#endif //BOOST_MSM_FRONT_COMMON_COMPLETION_EVENT_H
+
Added: sandbox/msm/boost/msm/front/detail/common_states.hpp
==============================================================================
--- (empty file)
+++ sandbox/msm/boost/msm/front/detail/common_states.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -0,0 +1,76 @@
+// Copyright 2008 Christophe Henry
+// henry UNDERSCORE christophe AT hotmail DOT com
+// This is an extended version of the state machine available in the boost::mpl library
+// Distributed under the same license as the original.
+// Copyright for the original version:
+// Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed
+// under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_MSM_FRONT_DETAILS_COMMON_STATES_H
+#define BOOST_MSM_FRONT_DETAILS_COMMON_STATES_H
+
+#include <boost/mpl/int.hpp>
+
+#include <boost/mpl/vector.hpp>
+#include <boost/fusion/container/map.hpp>
+#include <boost/fusion/include/at_c.hpp>
+
+#include <boost/type_traits/add_const.hpp>
+
+namespace boost { namespace msm { namespace front {namespace detail
+{
+template <class Attributes= ::boost::fusion::map<> >
+struct inherit_attributes
+{
+	// on the fly attribute creation capability
+	typedef Attributes		attributes_type;
+    template <class Index>
+    typename ::boost::fusion::result_of::at_key<attributes_type, 
+                                                Index>::type
+    get_attribute(Index const&) 
+    {
+        return ::boost::fusion::at_key<Index>(m_attributes);
+    }
+    
+    template <class Index>
+    typename ::boost::add_const<
+        typename ::boost::fusion::result_of::at_key<attributes_type,
+                                                    Index>::type>::type
+	get_attribute(Index const&)const 
+    {
+        return const_cast< 
+            typename ::boost::add_const< 
+                typename ::boost::fusion::result_of::at_key< attributes_type,
+                                                             Index >::type>::type>
+                                (::boost::fusion::at_key<Index>(m_attributes));
+    }
+
+private:
+	// attributes
+	Attributes m_attributes;
+};
+
+// the interface for all states. Defines entry and exit functions. Overwrite to implement for any state needing it.
+template<class USERBASE,class Attributes= ::boost::fusion::vector<> >
+struct state_base : public inherit_attributes<Attributes>, USERBASE
+{
+    typedef USERBASE		user_state_base;
+	typedef Attributes		attributes_type;
+
+    // empty implementation for the states not wishing to define an entry condition
+    // will not be called polymorphic way
+    template <class Event,class FSM>
+    void on_entry(Event const& ,FSM&){}
+    template <class Event,class FSM>
+    void on_exit(Event const&,FSM& ){}
+    // default (empty) transition table;
+    typedef ::boost::mpl::vector0<>  internal_transition_table;
+    typedef ::boost::mpl::vector0<>  transition_table;
+};
+
+}}}}
+
+#endif //BOOST_MSM_FRONT_DETAILS_COMMON_STATES_H
+
Modified: sandbox/msm/boost/msm/front/euml/euml_typeof.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/euml/euml_typeof.hpp	(original)
+++ sandbox/msm/boost/msm/front/euml/euml_typeof.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -26,7 +26,7 @@
 BOOST_TYPEOF_REGISTER_TEMPLATE(::boost::mpl::size_t, (unsigned int))
 
 BOOST_TYPEOF_REGISTER_TYPE(::boost::msm::front::default_base_state)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::inherit_attributes, 1)
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::detail::inherit_attributes, 1)
 
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::func_state, 6)
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::entry_func_state, (int)(typename)(typename)(typename)(typename)(typename)(typename))
@@ -45,7 +45,7 @@
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::State_Machine_, (int))
 BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::none)
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::Row, 5)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::ActionSequence, 1)
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::ActionSequence_, 1)
 
 BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::NoAction)
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::And_, 2)
Modified: sandbox/msm/boost/msm/front/euml/state_grammar.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/euml/state_grammar.hpp	(original)
+++ sandbox/msm/boost/msm/front/euml/state_grammar.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -42,7 +42,7 @@
          class Flags = ::boost::mpl::vector0<>,
          class Defer = ::boost::mpl::vector0<>,
          class BASE = ::boost::msm::front::default_base_state>
-struct func_state :  public ::boost::msm::front::state_base<BASE,Attributes>, 
+struct func_state :  public ::boost::msm::front::detail::state_base<BASE,Attributes>, 
                      euml_state<func_state<EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
 {
     // grammar testing
@@ -74,7 +74,7 @@
          class Flags = ::boost::mpl::vector0<>,
          class Defer = ::boost::mpl::vector0<>,
          class BASE = default_base_state>
-struct entry_func_state :  public ::boost::msm::front::state_base<BASE,Attributes>, 
+struct entry_func_state :  public ::boost::msm::front::detail::state_base<BASE,Attributes>, 
                            euml_state<entry_func_state<ZoneIndex,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
 {
     // grammar testing
@@ -110,7 +110,7 @@
          class Flags = ::boost::mpl::vector0<>,
          class Defer = ::boost::mpl::vector0<>,
          class BASE = default_base_state>
-struct explicit_entry_func_state :  public ::boost::msm::front::state_base<BASE,Attributes>, 
+struct explicit_entry_func_state :  public ::boost::msm::front::detail::state_base<BASE,Attributes>, 
                                     public ::boost::msm::front::explicit_entry<ZoneIndex>,
                                     euml_state<explicit_entry_func_state<
                                         ZoneIndex,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
@@ -144,7 +144,7 @@
          class Flags = ::boost::mpl::vector0<>,
          class Defer = ::boost::mpl::vector0<>,
          class BASE = default_base_state>
-struct exit_func_state :   public ::boost::msm::front::state_base<BASE,Attributes>, 
+struct exit_func_state :   public ::boost::msm::front::detail::state_base<BASE,Attributes>, 
                            euml_state<exit_func_state<Event,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
 {
     // grammar testing
@@ -180,17 +180,17 @@
    : proto::or_<
         proto::when <
                     BuildActions,
-                    ActionSequence<make_vector_one_row<BuildActions(proto::_)>()>()
+                    ActionSequence_<make_vector_one_row<BuildActions(proto::_)>()>()
         >,
         proto::when <
                     proto::comma<BuildActions,BuildActions >,
-                    ActionSequence<boost::mpl::push_back<
+                    ActionSequence_<boost::mpl::push_back<
                         make_vector_one_row<BuildActions(proto::_left)>(),
                                                 BuildActions(proto::_right)>()>()                
 		>,
         proto::when <
                     proto::comma<BuildActionSequence,BuildActions >,
-                    ActionSequence<boost::mpl::push_back<
+                    ActionSequence_<boost::mpl::push_back<
                         get_sequence<BuildActionSequence(proto::_left) >(),
                                                 BuildActions(proto::_right) >() >()                
 		>
@@ -777,7 +777,7 @@
          class NoTransitionFunctor = NoAction,
          class OnExceptionFunctor = NoAction,
          class BASE = ::boost::msm::front::default_base_state>
-struct func_state_machine :  public ::boost::msm::front::state_base<BASE,Attributes>, 
+struct func_state_machine :  public ::boost::msm::front::detail::state_base<BASE,Attributes>, 
                              euml_state<func_state_machine<STT,Init,EntryFunctor,ExitFunctor,Attributes,Flags,
                                                         Defer,NoTransitionFunctor,OnExceptionFunctor,BASE> >
 {
@@ -1054,10 +1054,10 @@
 
 template <class Expr>
 inline
-inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type>
+::boost::msm::front::detail::inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type>
 build_attributes (Expr const&)
 {
-    return inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type> ();
+    return ::boost::msm::front::detail::inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type> ();
 }
 
 template <class Expr1,class Expr2,class Attr,class Configure,class BASE>
Modified: sandbox/msm/boost/msm/front/functor_row.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/functor_row.hpp	(original)
+++ sandbox/msm/boost/msm/front/functor_row.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -18,7 +18,7 @@
 
 #include <boost/msm/row_tags.hpp>
 #include <boost/msm/common.hpp>
-#include <boost/msm/front/automatic_event.hpp>
+#include <boost/msm/front/completion_event.hpp>
 
 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
 
@@ -238,7 +238,7 @@
     struct not_euml_tag{};
 
     template <class Sequence>
-    struct ActionSequence
+    struct ActionSequence_
     {
         typedef Sequence sequence;
         template <class Event,class FSM,class STATE >
Modified: sandbox/msm/boost/msm/front/state_machine_def.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/state_machine_def.hpp	(original)
+++ sandbox/msm/boost/msm/front/state_machine_def.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -15,14 +15,14 @@
 
 #include <boost/msm/row_tags.hpp>
 #include <boost/msm/front/states.hpp>
-#include <boost/msm/front/automatic_event.hpp>
+#include <boost/msm/front/completion_event.hpp>
 #include <boost/msm/front/common_states.hpp>
 
 namespace boost { namespace msm { namespace front
 {
 
 template<class Derived,class BaseState = default_base_state>
-struct state_machine_def :  public state_base<BaseState>
+struct state_machine_def :  public boost::msm::front::detail::state_base<BaseState>
 {
         // tags
         // default: no flag
Modified: sandbox/msm/boost/msm/front/states.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/states.hpp	(original)
+++ sandbox/msm/boost/msm/front/states.hpp	2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -44,7 +44,7 @@
 // provides the typedefs and interface. Concrete states derive from it.
 // template argument: pointer-to-fsm policy
 template<class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct state :  public state_base<BASE>, SMPtrPolicy
+struct state :  public boost::msm::front::detail::state_base<BASE>, SMPtrPolicy
 {
     // tags
     // default: no flag
@@ -56,7 +56,7 @@
 // terminate state simply defines the TerminateFlag flag
 // template argument: pointer-to-fsm policy
 template<class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct terminate_state : public state_base<BASE>, SMPtrPolicy
+struct terminate_state : public boost::msm::front::detail::state_base<BASE>, SMPtrPolicy
 {
     // tags
     typedef ::boost::mpl::vector<boost::msm::TerminateFlag>      flag_list;
@@ -68,7 +68,7 @@
 // template argument: event which ends the interrupt
 // template argument: pointer-to-fsm policy
 template <class EndInterruptEvent,class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct interrupt_state : public state_base<BASE>, SMPtrPolicy
+struct interrupt_state : public boost::msm::front::detail::state_base<BASE>, SMPtrPolicy
 {
     // tags
     typedef ::boost::mpl::vector<boost::msm::InterruptedFlag,
@@ -94,7 +94,7 @@
 // template argument: pointer-to-fsm policy
 template<int ZoneIndex=-1,class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
 struct entry_pseudo_state
-    :  public state_base<BASE>,SMPtrPolicy
+    :  public boost::msm::front::detail::state_base<BASE>,SMPtrPolicy
 {
     // tags
     typedef int                          pseudo_entry;
@@ -110,7 +110,7 @@
 // template argument: event to forward
 // template argument: pointer-to-fsm policy
 template<class Event,class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct exit_pseudo_state : public state_base<BASE> , SMPtrPolicy
+struct exit_pseudo_state : public boost::msm::front::detail::state_base<BASE> , SMPtrPolicy
 {
     typedef Event       event;
     typedef BASE        Base;