]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/phoenix/support/detail/iterate.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / phoenix / support / detail / iterate.hpp
1 /*==============================================================================
2 Copyright (c) 2010 Thomas Heller
3
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7
8 #if !BOOST_PP_IS_ITERATING
9
10 #include <boost/preprocessor/tuple/elem.hpp>
11
12 #ifndef BOOST_PHOENIX_ITERATION_PARAMS
13 #error "BOOST_PHOENIX_ITERATION_PARAMS not defined"
14 #endif
15
16 #define BOOST_PHOENIX_ITERATION_PARAMS_SIZE \
17 BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PHOENIX_ITERATION_PARAMS) \
18 /**/
19
20 #define BOOST_PHOENIX_ITERATION_TUPLE \
21 BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PHOENIX_ITERATION_PARAMS) \
22 /**/
23
24 #define BOOST_PHOENIX_ITERATION_START \
25 BOOST_PP_TUPLE_ELEM( \
26 BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 0, BOOST_PHOENIX_ITERATION_TUPLE) \
27 /**/
28
29 #define BOOST_PHOENIX_ITERATION_END \
30 BOOST_PP_TUPLE_ELEM( \
31 BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 1, BOOST_PHOENIX_ITERATION_TUPLE) \
32 /**/
33
34
35 #define BOOST_PHOENIX_ITERATION_FILE() \
36 BOOST_PP_TUPLE_ELEM( \
37 BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 2, BOOST_PHOENIX_ITERATION_TUPLE) \
38 /**/
39
40 #if BOOST_PHOENIX_ITERATION_PARAMS_SIZE == 3
41
42 #define BOOST_PP_ITERATION_PARAMS_1 \
43 (3, (BOOST_PHOENIX_ITERATION_START, BOOST_PHOENIX_ITERATION_END, \
44 <boost/phoenix/support/detail/iterate.hpp>)) \
45 /**/
46
47 #else
48
49 #define BOOST_PHOENIX_ITERATION_FLAG \
50 BOOST_PP_TUPLE_ELEM( \
51 BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 3, BOOST_PHOENIX_ITERATION_TUPLE) \
52 /**/
53
54 #define BOOST_PP_ITERATION_PARAMS_1 \
55 (4, (BOOST_PHOENIX_ITERATION_START, BOOST_PHOENIX_ITERATION_END, \
56 <boost/phoenix/support/detail/iterate.hpp>, \
57 BOOST_PHOENIX_ITERATION_FLAG)) \
58 /**/
59
60 #endif
61
62 #include BOOST_PP_ITERATE()
63
64 #undef BOOST_PHOENIX_ITERATION_PARAMS_SIZE
65 #undef BOOST_PHOENIX_ITERATION_TUPLE
66 #undef BOOST_PHOENIX_ITERATION_START
67 #undef BOOST_PHOENIX_ITERATION_END
68 #undef BOOST_PHOENIX_ITERATION_PARAMS
69
70 #else
71
72 #undef BOOST_PHOENIX_IS_ITERATING
73 #define BOOST_PHOENIX_IS_ITERATING 1
74
75 #include <boost/phoenix/support/detail/iterate_undef.hpp>
76 #include <boost/phoenix/support/detail/iterate_define.hpp>
77
78
79 #include BOOST_PHOENIX_ITERATION_FILE()
80
81 #undef BOOST_PHOENIX_ITERATION
82
83 #undef BOOST_PHOENIX_IS_ITERATING
84 #define BOOST_PHOENIX_IS_ITERATING 0
85
86 #include <boost/phoenix/support/detail/iterate_undef.hpp>
87 #include <boost/phoenix/support/detail/iterate_define.hpp>
88
89 #endif