1 /*=============================================================================
2 Copyright (c) 2006 Tobias Schwinger
3 http://spirit.sourceforge.net/
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
11 #include <boost/spirit/home/classic/namespace.hpp>
12 #include <boost/typeof/typeof.hpp>
14 namespace boost { namespace spirit {
16 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
18 template<typename T, typename ActionT> class ref_actor;
20 template<typename T, typename ActionT> class ref_value_actor;
22 template<typename T, typename ValueT, typename ActionT>
24 class ref_const_ref_actor;
25 template<typename T, typename ValueT, typename ActionT>
27 class ref_const_ref_value_actor;
28 template<typename T, typename Value1T, typename Value2T, typename ActionT>
30 class ref_const_ref_const_ref_actor;
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;
42 template<typename T> class swap_actor;
44 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
46 }} // namespace BOOST_SPIRIT_CLASSIC_NS
49 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
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)
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)
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)
71 BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_SPIRIT_CLASSIC_NS::swap_actor,1)