1 /*============================================================================= 2 Copyright (c) 2006 Tobias Schwinger 3 http://spirit.sourceforge.net/ 4 5 Distributed under the Boost Software License, Version 1.0. (See accompanying 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 =============================================================================*/ 8 #if !defined(BOOST_SPIRIT_ACTOR_TYPEOF_HPP) 9 #define BOOST_SPIRIT_ACTOR_TYPEOF_HPP 10 11 #include <boost/spirit/home/classic/namespace.hpp> 12 #include <boost/typeof/typeof.hpp> 13 14 namespace boost { namespace spirit { 15 16 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN 17 18 template<typename T, typename ActionT> class ref_actor; 19 20 template<typename T, typename ActionT> class ref_value_actor; 21 22 template<typename T, typename ValueT, typename ActionT> 23 24 class ref_const_ref_actor; 25 template<typename T, typename ValueT, typename ActionT> 26 27 class ref_const_ref_value_actor; 28 template<typename T, typename Value1T, typename Value2T, typename ActionT> 29 30 class ref_const_ref_const_ref_actor; 31 32 struct assign_action; 33 struct clear_action; 34 struct increment_action; 35 struct decrement_action; 36 struct push_back_action; 37 struct push_front_action; 38 struct insert_key_action; 39 struct insert_at_action; 40 struct assign_key_action; 41 42 template<typename T> class swap_actor; 43 44 BOOST_SPIRIT_CLASSIC_NAMESPACE_END 45 46 }} // namespace BOOST_SPIRIT_CLASSIC_NS 47 48 49 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() 50 51 52 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::ref_actor,2) 53 #if !defined(BOOST_SPIRIT_CORE_TYPEOF_HPP) 54 // this part also lives in the core master header and is deprecated there... 55 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::ref_value_actor,2) 56 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::ref_const_ref_actor,3) 57 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::assign_action) 58 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::push_back_action) 59 #endif 60 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::ref_const_ref_value_actor,3) 61 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::ref_const_ref_const_ref_actor,4) 62 63 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::clear_action) 64 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::increment_action) 65 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::decrement_action) 66 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::push_front_action) 67 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::insert_key_action) 68 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::insert_at_action) 69 BOOST_TYPEOF_REGISTER_TYPE(BOOST_SPIRIT_CLASSIC_NS::assign_key_action) 70 71 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::swap_actor,1) 72 73 #endif 74 75