Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r63157 - in branches/release/boost/msm: . back front/euml
From: christophe.j.henry_at_[hidden]
Date: 2010-06-20 15:30:08


Author: chenry
Date: 2010-06-20 15:30:06 EDT (Sun, 20 Jun 2010)
New Revision: 63157
URL: http://svn.boost.org/trac/boost/changeset/63157

Log:
merged from trunk
Properties modified:
   branches/release/boost/msm/ (props changed)
Text files modified:
   branches/release/boost/msm/back/state_machine.hpp | 16 ++++++------
   branches/release/boost/msm/front/euml/common.hpp | 44 +++++++++++++++++++++++++++------
   branches/release/boost/msm/front/euml/container.hpp | 52 ++++++++++++++++++++++++++++++++++++++++
   branches/release/boost/msm/front/euml/operator.hpp | 6 ++++
   branches/release/boost/msm/front/euml/state_grammar.hpp | 8 +++++
   branches/release/boost/msm/front/euml/transformation.hpp | 4 +++
   6 files changed, 113 insertions(+), 17 deletions(-)

Modified: branches/release/boost/msm/back/state_machine.hpp
==============================================================================
--- branches/release/boost/msm/back/state_machine.hpp (original)
+++ branches/release/boost/msm/back/state_machine.hpp 2010-06-20 15:30:06 EDT (Sun, 20 Jun 2010)
@@ -1402,7 +1402,7 @@
                     table::instance.entries[self_->m_states[region_id::value]](
                     *self_, region_id::value , self_->m_states[region_id::value], evt);
                 result_ = (HandledEnum)((int)result_ | (int)res);
- In< ::boost::mpl::int_<region_id::value+1> >::template process(evt,self_,result_);
+ In< ::boost::mpl::int_<region_id::value+1> >::process(evt,self_,result_);
             }
         };
         template <int Dummy>
@@ -1420,7 +1420,7 @@
         {
             // use this table as if it came directly from the user
             typedef dispatch_table<library_sm,complete_table,Event,CompilePolicy> table;
- In< ::boost::mpl::int_<0> >::template process(evt,self,result);
+ In< ::boost::mpl::int_<0> >::process(evt,self,result);
         }
 
         library_sm* self;
@@ -1844,7 +1844,7 @@
              ::boost::mpl::for_each<state_list, ::boost::msm::wrap< ::boost::mpl::placeholders::_1> >
                  (entry_exit_helper<Event,true>(self_->m_states[region_id::value],incomingEvent,self_));
              region_start_helper
- < ::boost::mpl::int_<region_id::value+1> >::template do_start(self_,incomingEvent);
+ < ::boost::mpl::int_<region_id::value+1> >::do_start(self_,incomingEvent);
          }
      };
      template <int Dummy>
@@ -1858,7 +1858,7 @@
      template <class Event>
      void start(Event const& incomingEvent)
      {
- region_start_helper< ::boost::mpl::int_<0> >::template do_start(this,incomingEvent);
+ region_start_helper< ::boost::mpl::int_<0> >::do_start(this,incomingEvent);
      }
 
      // helper used to set the correct state as active state upon entry into a fsm
@@ -1966,7 +1966,7 @@
              self_->m_states[region_id::value] =
                  self_->m_history.history_entry(incomingEvent)[region_id::value];
              region_entry_exit_helper
- < ::boost::mpl::int_<region_id::value+1> >::template do_entry(self_,incomingEvent);
+ < ::boost::mpl::int_<region_id::value+1> >::do_entry(self_,incomingEvent);
          }
          template<class Event>
          static void do_exit(library_sm* self_,Event const& incomingEvent)
@@ -1974,7 +1974,7 @@
              ::boost::mpl::for_each<state_list, ::boost::msm::wrap< ::boost::mpl::placeholders::_1> >
                  (entry_exit_helper<Event,false>(self_->m_states[region_id::value],incomingEvent,self_));
              region_entry_exit_helper
- < ::boost::mpl::int_<region_id::value+1> >::template do_exit(self_,incomingEvent);
+ < ::boost::mpl::int_<region_id::value+1> >::do_exit(self_,incomingEvent);
          }
      };
      template <int Dummy>
@@ -1991,7 +1991,7 @@
      void do_entry(Event const& incomingEvent,FsmType& fsm)
      {
         // by default we activate the history/init states, can be overwritten by direct_event_start_helper
- region_entry_exit_helper< ::boost::mpl::int_<0> >::template do_entry(this,incomingEvent);
+ region_entry_exit_helper< ::boost::mpl::int_<0> >::do_entry(this,incomingEvent);
         // block immediate handling of events
         m_event_processing = true;
         // if the event is generating a direct entry/fork, set the current state(s) to the direct state(s)
@@ -2005,7 +2005,7 @@
      {
         // first recursively exit the sub machines
         // forward the event for handling by sub state machines
- region_entry_exit_helper< ::boost::mpl::int_<0> >::template do_exit(this,incomingEvent);
+ region_entry_exit_helper< ::boost::mpl::int_<0> >::do_exit(this,incomingEvent);
         // then call our own exit
         (static_cast<Derived*>(this))->on_exit(incomingEvent,fsm);
         // give the history a chance to handle this (or not).

Modified: branches/release/boost/msm/front/euml/common.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/common.hpp (original)
+++ branches/release/boost/msm/front/euml/common.hpp 2010-06-20 15:30:06 EDT (Sun, 20 Jun 2010)
@@ -294,14 +294,17 @@
 struct No_Exception : euml_config<No_Exception>
 {
     typedef int no_exception_thrown;
+ No_Exception(){}
 };
 struct No_Msg_Queue : euml_config<No_Msg_Queue>
 {
     typedef int no_message_queue;
+ No_Msg_Queue(){}
 };
 struct Deferred_Events : euml_config<Deferred_Events>
 {
     typedef int activate_deferred_events;
+ Deferred_Events(){}
 };
 No_Exception const no_exception;
 No_Msg_Queue const no_msg_queue;
@@ -328,6 +331,7 @@
 
 struct NoAction : euml_action<NoAction>
 {
+ NoAction(){}
     // return value if used inside a state action (entry/exit)
     template <class Event,class FSM,class STATE >
     struct state_action_result
@@ -396,6 +400,7 @@
 struct get_source_tag {};
 struct GetSource_Helper: proto::extends< proto::terminal<get_source_tag>::type, GetSource_Helper, sm_domain>
 {
+ GetSource_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -446,6 +451,7 @@
 struct get_target_tag {};
 struct GetTarget_Helper: proto::extends< proto::terminal<get_target_tag>::type, GetTarget_Helper, sm_domain>
 {
+ GetTarget_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -498,6 +504,7 @@
 struct get_state_tag {};
 struct GetState_Helper: proto::extends< proto::terminal<get_state_tag>::type, GetState_Helper, sm_domain>
 {
+ GetState_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -573,6 +580,7 @@
 struct get_event_tag {};
 struct GetEvent_Helper: proto::extends< proto::terminal<get_event_tag>::type, GetEvent_Helper, sm_domain>
 {
+ GetEvent_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -648,6 +656,7 @@
 struct get_fsm_tag {};
 struct GetFsm_Helper: proto::extends< proto::terminal<get_fsm_tag>::type, GetFsm_Helper, sm_domain>
 {
+ GetFsm_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -719,6 +728,7 @@
 struct substate_tag {};
 struct SubState_Helper: proto::extends< proto::terminal<substate_tag>::type, SubState_Helper, sm_domain>
 {
+ SubState_Helper(){}
     using proto::extends< proto::terminal<substate_tag>::type, SubState_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -784,6 +794,7 @@
 };
 struct GetAttribute_Helper: proto::extends< proto::terminal<get_attribute_tag>::type, GetAttribute_Helper, sm_domain>
 {
+ GetAttribute_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -951,6 +962,7 @@
 struct True_ : euml::euml_action<True_>
 {
     using euml_action<True_>::operator=;
+ True_(){}
 
     template <class Event,class FSM,class STATE >
     struct state_action_result
@@ -980,6 +992,7 @@
 struct False_ : euml::euml_action<False_>
 {
     using euml_action<False_>::operator=;
+ False_(){}
 
     template <class Event,class FSM,class STATE >
     struct state_action_result
@@ -1314,6 +1327,7 @@
 struct process_tag {};
 struct Process_Helper: proto::extends< proto::terminal<process_tag>::type, Process_Helper, sm_domain>
 {
+ Process_Helper(){}
     using proto::extends< proto::terminal<process_tag>::type, Process_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -1451,6 +1465,7 @@
 struct process2_tag {};
 struct Process2_Helper : proto::extends< proto::terminal<process2_tag>::type, Process2_Helper, sm_domain>
 {
+ Process2_Helper(){}
     using proto::extends< proto::terminal<process2_tag>::type, Process2_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -1534,6 +1549,7 @@
 };
 struct Get_Flag_Helper: proto::extends< proto::terminal<get_flag_tag>::type, Get_Flag_Helper, sm_domain>
 {
+ Get_Flag_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1559,6 +1575,7 @@
 struct defer_event_tag {};
 struct Defer_Helper : proto::extends< proto::terminal<defer_event_tag>::type, Defer_Helper, sm_domain>
 {
+ Defer_Helper(){}
     using proto::extends< proto::terminal<defer_event_tag>::type, Defer_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -1575,6 +1592,7 @@
 struct explicit_tag {};
 struct Explicit_Helper : proto::extends< proto::terminal<explicit_tag>::type, Explicit_Helper, sm_domain>
 {
+ Explicit_Helper(){}
     using proto::extends< proto::terminal<explicit_tag>::type, Explicit_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -1591,6 +1609,7 @@
 struct entry_pt_tag {};
 struct Entry_Pt_Helper : proto::extends< proto::terminal<entry_pt_tag>::type, Entry_Pt_Helper, sm_domain>
 {
+ Entry_Pt_Helper(){}
     using proto::extends< proto::terminal<entry_pt_tag>::type, Entry_Pt_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -1607,6 +1626,7 @@
 struct exit_pt_tag {};
 struct Exit_Pt_Helper : proto::extends< proto::terminal<exit_pt_tag>::type, Exit_Pt_Helper, sm_domain>
 {
+ Exit_Pt_Helper(){}
     using proto::extends< proto::terminal<exit_pt_tag>::type, Exit_Pt_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -1786,7 +1806,8 @@
         ,Param4()(evt,fsm,state),Param5()(evt,fsm,state),Param6()(evt,fsm,state));} }; \
         struct function_name ## tag{}; \
         struct functor ## Helper : proto::extends< proto::terminal< function_name ## tag >::type, \
- functor ## Helper , sm_domain> { template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5,class Arg6> \
+ functor ## Helper , sm_domain> { functor ## Helper(){} \
+ template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5,class Arg6> \
         struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5,Arg6> type;}; }; \
         functor ## Helper const function_name ;
 
@@ -1936,7 +1957,8 @@
         ,Param4()(evt,fsm,state),Param5()(evt,fsm,state),Param6()(evt,fsm,state));} }; \
         struct function_name ## tag{}; \
         struct functor ## Helper : proto::extends< proto::terminal< function_name ## tag >::type, \
- functor ## Helper , sm_domain> { template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5,class Arg6> \
+ functor ## Helper , sm_domain> { functor ## Helper(){} \
+ template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5,class Arg6> \
         struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5,Arg6> type;}; }; \
         functor ## Helper const function_name ;
 
@@ -2065,7 +2087,8 @@
         ,Param4()(evt,fsm,state),Param5()(evt,fsm,state));} }; \
         struct function_name ## tag{}; \
         struct functor ## Helper : proto::extends< proto::terminal< function_name ## tag >::type, \
- functor ## Helper , sm_domain> { template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5> \
+ functor ## Helper , sm_domain> { functor ## Helper(){} \
+ template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5> \
         struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5> type;}; }; \
         functor ## Helper const function_name ;
 
@@ -2190,7 +2213,8 @@
         ,Param4()(evt,fsm,state),Param5()(evt,fsm,state));} }; \
         struct function_name ## tag{}; \
         struct functor ## Helper : proto::extends< proto::terminal< function_name ## tag >::type, \
- functor ## Helper , sm_domain> { template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5> \
+ functor ## Helper , sm_domain> { functor ## Helper(){} \
+ template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5> \
         struct In {typedef functor <Arg1,Arg2,Arg3,Arg4,Arg5> type;}; }; \
         functor ## Helper const function_name ;
 
@@ -2235,6 +2259,7 @@
     struct instance_name ## _impl; \
     struct instance_name ## _helper : msm::front::euml::euml_action<instance_name ## _impl> \
     { \
+ instance_name ## _helper(){} \
         typedef instance_name ## _impl action_name; \
     }; \
     instance_name ## _helper instance_name; \
@@ -2243,6 +2268,7 @@
 
 #define BOOST_MSM_EUML_EVENT(instance_name) \
     struct instance_name ## _helper : msm::front::euml::euml_event<instance_name ## _helper>{ \
+ instance_name ## _helper(){} \
     instance_name ## _helper const& operator()(){return *this;} }; \
     instance_name ## _helper instance_name;
 
@@ -2408,12 +2434,14 @@
 
 #define BOOST_MSM_EUML_TRANSITION_TABLE(expr,instance_name) \
     struct instance_name ## _helper : \
- public BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)){} ; \
+ public BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)) \
+ {instance_name ## _helper(){}} ; \
     instance_name ## _helper const instance_name;
 
-#define BOOST_MSM_EUML_INTERNAL_TRANSITION_TABLE(expr,instance_name) \
- struct instance_name ## _helper : \
- public BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_INTERNAL_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)){} ; \
+#define BOOST_MSM_EUML_INTERNAL_TRANSITION_TABLE(expr,instance_name) \
+ struct instance_name ## _helper : \
+ public BOOST_TYPEOF(BOOST_MSM_EUML_BUILD_INTERNAL_STT_HELPER BOOST_MSM_EUML_BUILD_STT_HELPER2(expr)) \
+ {instance_name ## _helper(){}} ; \
     instance_name ## _helper const instance_name;
 
 #endif

Modified: branches/release/boost/msm/front/euml/container.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/container.hpp (original)
+++ branches/release/boost/msm/front/euml/container.hpp 2010-06-20 15:30:06 EDT (Sun, 20 Jun 2010)
@@ -67,6 +67,7 @@
 struct front_tag {};
 struct Front_Helper: proto::extends< proto::terminal<front_tag>::type, Front_Helper, sm_domain>
 {
+ Front_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -121,6 +122,7 @@
 struct back_tag {};
 struct Back_Helper: proto::extends< proto::terminal<back_tag>::type, Back_Helper, sm_domain>
 {
+ Back_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -175,6 +177,7 @@
 struct begin_tag {};
 struct Begin_Helper: proto::extends< proto::terminal<begin_tag>::type, Begin_Helper, sm_domain>
 {
+ Begin_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -228,6 +231,7 @@
 struct end_tag {};
 struct End_Helper: proto::extends< proto::terminal<end_tag>::type, End_Helper, sm_domain>
 {
+ End_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -282,6 +286,7 @@
 struct rbegin_tag {};
 struct RBegin_Helper: proto::extends< proto::terminal<rbegin_tag>::type, RBegin_Helper, sm_domain>
 {
+ RBegin_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -335,6 +340,7 @@
 struct rend_tag {};
 struct REnd_Helper: proto::extends< proto::terminal<rend_tag>::type, REnd_Helper, sm_domain>
 {
+ REnd_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -376,6 +382,7 @@
 struct push_back_tag {};
 struct Push_Back_Helper: proto::extends< proto::terminal<push_back_tag>::type, Push_Back_Helper, sm_domain>
 {
+ Push_Back_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -417,6 +424,7 @@
 struct pop_back_tag {};
 struct Pop_Back_Helper: proto::extends< proto::terminal<pop_back_tag>::type, Pop_Back_Helper, sm_domain>
 {
+ Pop_Back_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -458,6 +466,7 @@
 struct push_front_tag {};
 struct Push_Front_Helper: proto::extends< proto::terminal<push_front_tag>::type, Push_Front_Helper, sm_domain>
 {
+ Push_Front_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -499,6 +508,7 @@
 struct pop_front_tag {};
 struct Pop_Front_Helper: proto::extends< proto::terminal<pop_front_tag>::type, Pop_Front_Helper, sm_domain>
 {
+ Pop_Front_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -540,6 +550,7 @@
 struct clear_tag {};
 struct Clear_Helper: proto::extends< proto::terminal<clear_tag>::type, Clear_Helper, sm_domain>
 {
+ Clear_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -581,6 +592,7 @@
 struct list_reverse_tag {};
 struct ListReverse_Helper: proto::extends< proto::terminal<list_reverse_tag>::type, ListReverse_Helper, sm_domain>
 {
+ ListReverse_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -650,6 +662,7 @@
 struct list_unique_tag {};
 struct ListUnique_Helper: proto::extends< proto::terminal<list_unique_tag>::type, ListUnique_Helper, sm_domain>
 {
+ ListUnique_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -719,6 +732,7 @@
 struct list_sort_tag {};
 struct ListSort_Helper: proto::extends< proto::terminal<list_sort_tag>::type, ListSort_Helper, sm_domain>
 {
+ ListSort_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -772,6 +786,7 @@
 struct capacity_tag {};
 struct Capacity_Helper: proto::extends< proto::terminal<capacity_tag>::type, Capacity_Helper, sm_domain>
 {
+ Capacity_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -825,6 +840,7 @@
 struct size_tag {};
 struct Size_Helper: proto::extends< proto::terminal<size_tag>::type, Size_Helper, sm_domain>
 {
+ Size_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -878,6 +894,7 @@
 struct max_size_tag {};
 struct Max_Size_Helper: proto::extends< proto::terminal<max_size_tag>::type, Max_Size_Helper, sm_domain>
 {
+ Max_Size_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -919,6 +936,7 @@
 struct reserve_tag {};
 struct Reserve_Helper: proto::extends< proto::terminal<reserve_tag>::type, Reserve_Helper, sm_domain>
 {
+ Reserve_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -987,6 +1005,7 @@
 struct resize_tag {};
 struct Resize_Helper: proto::extends< proto::terminal<resize_tag>::type, Resize_Helper, sm_domain>
 {
+ Resize_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1169,6 +1188,7 @@
 struct insert_tag {};
 struct Insert_Helper: proto::extends< proto::terminal<insert_tag>::type, Insert_Helper, sm_domain>
 {
+ Insert_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1210,6 +1230,7 @@
 struct swap_tag {};
 struct Swap_Helper: proto::extends< proto::terminal<swap_tag>::type, Swap_Helper, sm_domain>
 {
+ Swap_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1295,6 +1316,7 @@
 struct erase_tag {};
 struct Erase_Helper: proto::extends< proto::terminal<erase_tag>::type, Erase_Helper, sm_domain>
 {
+ Erase_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1336,6 +1358,7 @@
 struct empty_tag {};
 struct Empty_Helper: proto::extends< proto::terminal<empty_tag>::type, Empty_Helper, sm_domain>
 {
+ Empty_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1377,6 +1400,7 @@
 struct list_remove_tag {};
 struct ListRemove_Helper: proto::extends< proto::terminal<list_remove_tag>::type, ListRemove_Helper, sm_domain>
 {
+ ListRemove_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1418,6 +1442,7 @@
 struct list_remove_if_tag {};
 struct ListRemove_If_Helper: proto::extends< proto::terminal<list_remove_if_tag>::type, ListRemove_If_Helper, sm_domain>
 {
+ ListRemove_If_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1487,6 +1512,7 @@
 struct list_merge_tag {};
 struct ListMerge_Helper: proto::extends< proto::terminal<list_merge_tag>::type, ListMerge_Helper, sm_domain>
 {
+ ListMerge_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1599,6 +1625,7 @@
 struct splice_tag {};
 struct Splice_Helper: proto::extends< proto::terminal<splice_tag>::type, Splice_Helper, sm_domain>
 {
+ Splice_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1716,6 +1743,7 @@
 struct string_find_tag {};
 struct StringFind_Helper: proto::extends< proto::terminal<string_find_tag>::type, StringFind_Helper, sm_domain>
 {
+ StringFind_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1855,6 +1883,7 @@
 struct string_rfind_tag {};
 struct StringRFind_Helper: proto::extends< proto::terminal<string_rfind_tag>::type, StringRFind_Helper, sm_domain>
 {
+ StringRFind_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -1967,6 +1996,7 @@
 struct StringFindFirstOf_Helper:
     proto::extends< proto::terminal<string_find_first_of_tag>::type, StringFindFirstOf_Helper, sm_domain>
 {
+ StringFindFirstOf_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2107,6 +2137,7 @@
 struct StringFindFirstNotOf_Helper:
     proto::extends< proto::terminal<string_find_first_not_of_tag>::type, StringFindFirstNotOf_Helper, sm_domain>
 {
+ StringFindFirstNotOf_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2247,6 +2278,7 @@
 struct StringFindLastOf_Helper:
     proto::extends< proto::terminal<string_find_last_of_tag>::type, StringFindLastOf_Helper, sm_domain>
 {
+ StringFindLastOf_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2387,6 +2419,7 @@
 struct StringFindLastNotOf_Helper:
     proto::extends< proto::terminal<string_find_last_of_tag>::type, StringFindLastNotOf_Helper, sm_domain>
 {
+ StringFindLastNotOf_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2402,6 +2435,7 @@
 template <class Container>
 struct Npos_ : euml_action<Npos_<Container> >
 {
+ Npos_(){}
     template <class Event,class FSM,class STATE >
     struct state_action_result
     {
@@ -2562,6 +2596,7 @@
 struct associative_erase_tag {};
 struct Associative_Erase_Helper: proto::extends< proto::terminal<associative_erase_tag>::type, Associative_Erase_Helper, sm_domain>
 {
+ Associative_Erase_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2617,6 +2652,7 @@
 struct associative_find_tag {};
 struct Associative_Find_Helper: proto::extends< proto::terminal<associative_find_tag>::type, Associative_Find_Helper, sm_domain>
 {
+ Associative_Find_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2670,6 +2706,7 @@
 struct associative_count_tag {};
 struct AssociativeCount_Helper: proto::extends< proto::terminal<associative_count_tag>::type, AssociativeCount_Helper, sm_domain>
 {
+ AssociativeCount_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2725,6 +2762,7 @@
 struct Associative_Lower_Bound_Helper: proto::extends< proto::terminal<associative_lower_bound_tag>::type,
                                                        Associative_Lower_Bound_Helper, sm_domain>
 {
+ Associative_Lower_Bound_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2780,6 +2818,7 @@
 struct Associative_Upper_Bound_Helper: proto::extends< proto::terminal<associative_upper_bound_tag>::type,
                                                        Associative_Upper_Bound_Helper, sm_domain>
 {
+ Associative_Upper_Bound_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2834,6 +2873,7 @@
 struct first_tag {};
 struct First_Helper: proto::extends< proto::terminal<first_tag>::type, First_Helper, sm_domain>
 {
+ First_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2888,6 +2928,7 @@
 struct second_tag {};
 struct Second_Helper: proto::extends< proto::terminal<second_tag>::type, Second_Helper, sm_domain>
 {
+ Second_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -2951,6 +2992,7 @@
 struct Associative_Equal_Range_Helper: proto::extends< proto::terminal<associative_equal_range_tag>::type,
                                                        Associative_Equal_Range_Helper, sm_domain>
 {
+ Associative_Equal_Range_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3062,6 +3104,7 @@
 struct substr_tag {};
 struct Substr_Helper: proto::extends< proto::terminal<substr_tag>::type, Substr_Helper, sm_domain>
 {
+ Substr_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3223,6 +3266,7 @@
 struct string_compare_tag {};
 struct StringCompare_Helper: proto::extends< proto::terminal<string_compare_tag>::type, StringCompare_Helper, sm_domain>
 {
+ StringCompare_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3346,6 +3390,7 @@
 struct append_tag {};
 struct Append_Helper: proto::extends< proto::terminal<append_tag>::type, Append_Helper, sm_domain>
 {
+ Append_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3470,6 +3515,7 @@
 struct string_insert_tag {};
 struct StringInsert_Helper: proto::extends< proto::terminal<string_insert_tag>::type, StringInsert_Helper, sm_domain>
 {
+ StringInsert_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3576,6 +3622,7 @@
 struct string_erase_tag {};
 struct StringErase_Helper: proto::extends< proto::terminal<string_erase_tag>::type, StringErase_Helper, sm_domain>
 {
+ StringErase_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3699,6 +3746,7 @@
 struct assign_tag {};
 struct StringAssign_Helper: proto::extends< proto::terminal<assign_tag>::type, StringAssign_Helper, sm_domain>
 {
+ StringAssign_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3789,6 +3837,7 @@
 struct string_replace_tag {};
 struct StringReplace_Helper: proto::extends< proto::terminal<string_replace_tag>::type, StringReplace_Helper, sm_domain>
 {
+ StringReplace_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3844,6 +3893,7 @@
 struct c_str_tag {};
 struct CStr_Helper: proto::extends< proto::terminal<c_str_tag>::type, CStr_Helper, sm_domain>
 {
+ CStr_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3899,6 +3949,7 @@
 struct string_data_tag {};
 struct StringData_Helper: proto::extends< proto::terminal<string_data_tag>::type, StringData_Helper, sm_domain>
 {
+ StringData_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -3999,6 +4050,7 @@
 struct string_copy_tag {};
 struct StringCopy_Helper: proto::extends< proto::terminal<string_copy_tag>::type, StringCopy_Helper, sm_domain>
 {
+ StringCopy_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6

Modified: branches/release/boost/msm/front/euml/operator.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/operator.hpp (original)
+++ branches/release/boost/msm/front/euml/operator.hpp 2010-06-20 15:30:06 EDT (Sun, 20 Jun 2010)
@@ -159,6 +159,7 @@
 };
 struct If : proto::extends<proto::terminal<if_tag>::type, If, sm_domain>
 {
+ If(){}
     using proto::extends< proto::terminal<if_tag>::type, If, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -257,6 +258,7 @@
 };
 struct If_Then : proto::extends< proto::terminal<if_then_tag>::type, If_Then, sm_domain>
 {
+ If_Then(){}
     using proto::extends< proto::terminal<if_then_tag>::type, If_Then, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -312,6 +314,7 @@
 };
 struct While_Do_Helper : proto::extends< proto::terminal<while_do_tag>::type, While_Do_Helper, sm_domain>
 {
+ While_Do_Helper(){}
     using proto::extends< proto::terminal<while_do_tag>::type, While_Do_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -367,6 +370,7 @@
 };
 struct Do_While_Helper : proto::extends< proto::terminal<do_while_tag>::type, Do_While_Helper, sm_domain>
 {
+ Do_While_Helper(){}
     using proto::extends< proto::terminal<do_while_tag>::type, Do_While_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -424,6 +428,7 @@
 };
 struct For_Loop_Helper : proto::extends< proto::terminal<for_loop_tag>::type, For_Loop_Helper, sm_domain>
 {
+ For_Loop_Helper(){}
     using proto::extends< proto::terminal<for_loop_tag>::type, For_Loop_Helper, sm_domain>::operator=;
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
@@ -443,6 +448,7 @@
 template <class T>
 struct Deref_ : euml_action<Deref_<T> >
 {
+ Deref_(){}
     using euml_action<Deref_<T> >::operator=;
     template <class Event,class FSM,class STATE >
     struct state_action_result

Modified: branches/release/boost/msm/front/euml/state_grammar.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/state_grammar.hpp (original)
+++ branches/release/boost/msm/front/euml/state_grammar.hpp 2010-06-20 15:30:06 EDT (Sun, 20 Jun 2010)
@@ -46,6 +46,7 @@
 struct func_state : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
                      euml_state<func_state<StateNameTag,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
 {
+ func_state(){}
     // grammar testing
     BOOST_MPL_ASSERT_NOT(( boost::is_same<EntryFunctor,invalid_type> ));
     BOOST_MPL_ASSERT_NOT(( boost::is_same<ExitFunctor,invalid_type> ));
@@ -80,6 +81,7 @@
 struct entry_func_state : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
                            euml_state<entry_func_state<StateNameTag,ZoneIndex,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
 {
+ entry_func_state(){}
     // grammar testing
     BOOST_MPL_ASSERT_NOT(( boost::is_same<EntryFunctor,invalid_type> ));
     BOOST_MPL_ASSERT_NOT(( boost::is_same<ExitFunctor,invalid_type> ));
@@ -120,6 +122,7 @@
                                     euml_state<explicit_entry_func_state<StateNameTag,
                                         ZoneIndex,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
 {
+ explicit_entry_func_state(){}
     // grammar testing
     BOOST_MPL_ASSERT_NOT(( boost::is_same<EntryFunctor,invalid_type> ));
     BOOST_MPL_ASSERT_NOT(( boost::is_same<ExitFunctor,invalid_type> ));
@@ -154,6 +157,7 @@
 struct exit_func_state : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
                            euml_state<exit_func_state<StateNameTag,Event,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
 {
+ exit_func_state(){}
     // grammar testing
     BOOST_MPL_ASSERT_NOT(( boost::is_same<EntryFunctor,invalid_type> ));
     BOOST_MPL_ASSERT_NOT(( boost::is_same<ExitFunctor,invalid_type> ));
@@ -507,8 +511,9 @@
 #define BOOST_MSM_EUML_DECLARE_ATTRIBUTE(attr_type,attr_name) \
 struct attr_name ## _ \
     : proto::extends< proto::terminal<msm::front::action_tag>::type, attr_name ## _, sm_domain> \
- {typedef attr_name ## _ action_name; \
+ {typedef attr_name ## _ action_name; \
         typedef ::boost::fusion::pair<attr_name ## _,attr_type> attribute_type; \
+ attr_name ## _ (){} \
     }; \
 attr_name ## _ const attr_name;
 
@@ -797,6 +802,7 @@
                              euml_state<func_state_machine<StateNameTag,STT,Init,EntryFunctor,ExitFunctor,Attributes,Flags,
                                                         Defer,NoTransitionFunctor,OnExceptionFunctor,BASE> >
 {
+ func_state_machine(){}
     // grammar testing
     BOOST_MPL_ASSERT_NOT(( boost::is_same<EntryFunctor,invalid_type> ));
     BOOST_MPL_ASSERT_NOT(( boost::is_same<ExitFunctor,invalid_type> ));

Modified: branches/release/boost/msm/front/euml/transformation.hpp
==============================================================================
--- branches/release/boost/msm/front/euml/transformation.hpp (original)
+++ branches/release/boost/msm/front/euml/transformation.hpp 2010-06-20 15:30:06 EDT (Sun, 20 Jun 2010)
@@ -109,6 +109,7 @@
 struct back_inserter_tag {};
 struct BackInserter_Helper: proto::extends< proto::terminal<back_inserter_tag>::type, BackInserter_Helper, sm_domain>
 {
+ BackInserter_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -163,6 +164,7 @@
 struct front_inserter_tag {};
 struct FrontInserter_Helper: proto::extends< proto::terminal<front_inserter_tag>::type, FrontInserter_Helper, sm_domain>
 {
+ FrontInserter_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -217,6 +219,7 @@
 struct inserter_tag {};
 struct Inserter_Helper: proto::extends< proto::terminal<inserter_tag>::type, Inserter_Helper, sm_domain>
 {
+ Inserter_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6
@@ -314,6 +317,7 @@
 struct transform_tag {};
 struct Transform_Helper: proto::extends< proto::terminal<transform_tag>::type, Transform_Helper, sm_domain>
 {
+ Transform_Helper(){}
     template <class Arg1,class Arg2,class Arg3,class Arg4,class Arg5
 #ifdef BOOST_MSVC
  ,class Arg6


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