Chris@16
|
1 # /* **************************************************************************
|
Chris@16
|
2 # * *
|
Chris@16
|
3 # * (C) Copyright Paul Mensonides 2002.
|
Chris@16
|
4 # * Distributed under the Boost Software License, Version 1.0. (See
|
Chris@16
|
5 # * accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
6 # * http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
7 # * *
|
Chris@16
|
8 # ************************************************************************** */
|
Chris@16
|
9 #
|
Chris@16
|
10 # /* See http://www.boost.org for most recent version. */
|
Chris@16
|
11 #
|
Chris@16
|
12 # ifndef BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
|
Chris@16
|
13 # define BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
|
Chris@16
|
14 #
|
Chris@16
|
15 # include <boost/preprocessor/arithmetic/dec.hpp>
|
Chris@16
|
16 # include <boost/preprocessor/arithmetic/inc.hpp>
|
Chris@16
|
17 # include <boost/preprocessor/array/elem.hpp>
|
Chris@16
|
18 # include <boost/preprocessor/array/size.hpp>
|
Chris@16
|
19 # include <boost/preprocessor/cat.hpp>
|
Chris@16
|
20 # include <boost/preprocessor/slot/slot.hpp>
|
Chris@16
|
21 # include <boost/preprocessor/tuple/elem.hpp>
|
Chris@16
|
22 #
|
Chris@16
|
23 # /* BOOST_PP_ITERATION_DEPTH */
|
Chris@16
|
24 #
|
Chris@16
|
25 # define BOOST_PP_ITERATION_DEPTH() 0
|
Chris@16
|
26 #
|
Chris@16
|
27 # /* BOOST_PP_ITERATION */
|
Chris@16
|
28 #
|
Chris@16
|
29 # define BOOST_PP_ITERATION() BOOST_PP_CAT(BOOST_PP_ITERATION_, BOOST_PP_ITERATION_DEPTH())
|
Chris@16
|
30 #
|
Chris@16
|
31 # /* BOOST_PP_ITERATION_START && BOOST_PP_ITERATION_FINISH */
|
Chris@16
|
32 #
|
Chris@16
|
33 # define BOOST_PP_ITERATION_START() BOOST_PP_CAT(BOOST_PP_ITERATION_START_, BOOST_PP_ITERATION_DEPTH())
|
Chris@16
|
34 # define BOOST_PP_ITERATION_FINISH() BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, BOOST_PP_ITERATION_DEPTH())
|
Chris@16
|
35 #
|
Chris@16
|
36 # /* BOOST_PP_ITERATION_FLAGS */
|
Chris@16
|
37 #
|
Chris@16
|
38 # define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH())())
|
Chris@16
|
39 #
|
Chris@16
|
40 # /* BOOST_PP_FRAME_ITERATION */
|
Chris@16
|
41 #
|
Chris@16
|
42 # define BOOST_PP_FRAME_ITERATION(i) BOOST_PP_CAT(BOOST_PP_ITERATION_, i)
|
Chris@16
|
43 #
|
Chris@16
|
44 # /* BOOST_PP_FRAME_START && BOOST_PP_FRAME_FINISH */
|
Chris@16
|
45 #
|
Chris@16
|
46 # define BOOST_PP_FRAME_START(i) BOOST_PP_CAT(BOOST_PP_ITERATION_START_, i)
|
Chris@16
|
47 # define BOOST_PP_FRAME_FINISH(i) BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, i)
|
Chris@16
|
48 #
|
Chris@16
|
49 # /* BOOST_PP_FRAME_FLAGS */
|
Chris@16
|
50 #
|
Chris@16
|
51 # define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i)())
|
Chris@16
|
52 #
|
Chris@16
|
53 # /* BOOST_PP_RELATIVE_ITERATION */
|
Chris@16
|
54 #
|
Chris@16
|
55 # define BOOST_PP_RELATIVE_ITERATION(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_)
|
Chris@16
|
56 #
|
Chris@16
|
57 # define BOOST_PP_RELATIVE_0(m) BOOST_PP_CAT(m, BOOST_PP_ITERATION_DEPTH())
|
Chris@16
|
58 # define BOOST_PP_RELATIVE_1(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))
|
Chris@16
|
59 # define BOOST_PP_RELATIVE_2(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))
|
Chris@16
|
60 # define BOOST_PP_RELATIVE_3(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))))
|
Chris@16
|
61 # define BOOST_PP_RELATIVE_4(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))))
|
Chris@16
|
62 #
|
Chris@16
|
63 # /* BOOST_PP_RELATIVE_START && BOOST_PP_RELATIVE_FINISH */
|
Chris@16
|
64 #
|
Chris@16
|
65 # define BOOST_PP_RELATIVE_START(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_START_)
|
Chris@16
|
66 # define BOOST_PP_RELATIVE_FINISH(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FINISH_)
|
Chris@16
|
67 #
|
Chris@16
|
68 # /* BOOST_PP_RELATIVE_FLAGS */
|
Chris@16
|
69 #
|
Chris@16
|
70 # define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_)())
|
Chris@16
|
71 #
|
Chris@16
|
72 # /* BOOST_PP_ITERATE */
|
Chris@16
|
73 #
|
Chris@16
|
74 # define BOOST_PP_ITERATE() BOOST_PP_CAT(BOOST_PP_ITERATE_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH()))
|
Chris@16
|
75 #
|
Chris@16
|
76 # define BOOST_PP_ITERATE_1 <boost/preprocessor/iteration/detail/iter/forward1.hpp>
|
Chris@16
|
77 # define BOOST_PP_ITERATE_2 <boost/preprocessor/iteration/detail/iter/forward2.hpp>
|
Chris@16
|
78 # define BOOST_PP_ITERATE_3 <boost/preprocessor/iteration/detail/iter/forward3.hpp>
|
Chris@16
|
79 # define BOOST_PP_ITERATE_4 <boost/preprocessor/iteration/detail/iter/forward4.hpp>
|
Chris@16
|
80 # define BOOST_PP_ITERATE_5 <boost/preprocessor/iteration/detail/iter/forward5.hpp>
|
Chris@16
|
81 #
|
Chris@16
|
82 # endif
|