/usr/include/boost/msm/back
NameSizeModeActions
args.hpp35790644editdlrm
bind_helpers.hpp13940644editdlrm
common_types.hpp11950644editdlrm
copy_policies.hpp8490644editdlrm
default_compile_policy.hpp8560644editdlrm
dispatch_table.hpp203530644editdlrm
favor_compile_time.hpp138270644editdlrm
fold_to_list.hpp24360644editdlrm
history_policies.hpp56780644editdlrm
metafunctions.hpp356290644editdlrm
mpl_graph_fsm_check.hpp18950644editdlrm
no_fsm_check.hpp10430644editdlrm
queue_container_circular.hpp9810644editdlrm
queue_container_deque.hpp9370644editdlrm
state_machine.hpp1248090644editdlrm
tools.hpp20210644editdlrm
Edit: /usr/include/boost/msm/back/fold_to_list.hpp (2436B)
// Copyright 2008 Christophe Henry // henry UNDERSCORE christophe AT hotmail DOT com // This is taken from Boost.Proto's documentation // Copyright for the original version: // Copyright 2008 Eric Niebler. 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_BACK_FOLD_TO_LIST_H #define BOOST_MSM_BACK_FOLD_TO_LIST_H #include #include #include #include #include namespace boost { namespace msm { namespace back { struct state_copy_tag { }; template struct define_states_creation { BOOST_PROTO_BASIC_EXTENDS( proto::terminal::type , define_states_creation , boost::msm::msm_domain ) }; define_states_creation<> const states_ = {{{}}}; struct FoldToList : ::boost::proto::or_< // Don't add the states_ terminal to the list ::boost::proto::when< ::boost::proto::terminal< state_copy_tag > , ::boost::proto::_state > // Put all other terminals at the head of the // list that we're building in the "state" parameter // first states for the eUML states , ::boost::proto::when< ::boost::proto::terminal< state_tag > , boost::fusion::cons< ::boost::proto::_, ::boost::proto::_state>( ::boost::proto::_, ::boost::proto::_state ) > // then states from other front-ends , ::boost::proto::when< ::boost::proto::terminal< proto::_ > , boost::fusion::cons< ::boost::proto::_value, ::boost::proto::_state>( ::boost::proto::_value, ::boost::proto::_state ) > // For left-shift operations, first fold the right // child to a list using the current state. Use // the result as the state parameter when folding // the left child to a list. , ::boost::proto::when< ::boost::proto::shift_left , FoldToList( ::boost::proto::_left , ::boost::proto::call ) > > {}; }}} #endif //BOOST_MSM_BACK_FOLD_TO_LIST_H