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