]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/phoenix/core/detail/cpp03/actor_result_of.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / phoenix / core / detail / cpp03 / actor_result_of.hpp
1
2 #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
3 #ifndef BOOST_PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
4 #define BOOST_PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
5
6 #include <boost/phoenix/support/iterate.hpp>
7
8 #include <boost/phoenix/core/detail/cpp03/preprocessed/actor_result_of.hpp>
9
10 #endif
11 #else
12
13 #if !BOOST_PHOENIX_IS_ITERATING
14
15 #ifndef BOOST_PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
16 #define BOOST_PHOENIX_CORE_DETAIL_ACTOR_RESULT_OF_HPP
17
18 #include <boost/phoenix/support/iterate.hpp>
19
20 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
21 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/actor_result_of_" BOOST_PHOENIX_LIMIT_STR ".hpp")
22 #endif
23
24 /*==============================================================================
25 Copyright (c) 2005-2010 Joel de Guzman
26 Copyright (c) 2010 Thomas Heller
27
28 Distributed under the Boost Software License, Version 1.0. (See accompanying
29 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
30 ==============================================================================*/
31
32 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
33 #pragma wave option(preserve: 1)
34 #endif
35
36 template <typename Expr
37 , BOOST_PHOENIX_typename_A_void(BOOST_PHOENIX_ACTOR_LIMIT)
38 , typename Dummy = void>
39 struct actor;
40
41 template <typename Expr>
42 struct nullary_actor_result
43 {
44 typedef
45 typename boost::phoenix::evaluator::impl<
46 Expr const&
47 , vector2<
48 vector1<const ::boost::phoenix::actor<Expr> *> &
49 , default_actions
50 > const &
51 , proto::empty_env
52 >::result_type
53 type;
54 };
55
56 #define BOOST_PHOENIX_ITERATION_PARAMS \
57 (3, (1, BOOST_PHOENIX_ACTOR_LIMIT, \
58 <boost/phoenix/core/detail/cpp03/actor_result_of.hpp>))
59 #include BOOST_PHOENIX_ITERATE()
60
61 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
62 #pragma wave option(output: null)
63 #endif
64
65 #endif
66
67 #else
68
69 template <typename Expr, BOOST_PHOENIX_typename_A>
70 struct actor<Expr, BOOST_PHOENIX_A>
71 {
72 typedef
73 typename phoenix::evaluator::
74 impl<
75 Expr const&
76 , vector2<
77 BOOST_PP_CAT(
78 vector
79 , BOOST_PP_INC(BOOST_PHOENIX_ITERATION)
80 )<const ::boost::phoenix::actor<Expr> *, BOOST_PHOENIX_A> &
81 , default_actions
82 > const &
83 , proto::empty_env
84 >::result_type
85 type;
86 };
87
88 #endif
89
90 #endif // BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES