1 # /* Copyright (C) 2001
3 # * http://www.housemarque.com
5 # * Distributed under the Boost Software License, Version 1.0. (See
6 # * accompanying file LICENSE_1_0.txt or copy at
7 # * http://www.boost.org/LICENSE_1_0.txt)
10 # /* Revised by Paul Mensonides (2002) */
11 # /* Revised by Edward Diener (2011,2020) */
13 # /* See http://www.boost.org for most recent version. */
15 # ifndef BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP
16 # define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP
18 # include <boost/preprocessor/config/config.hpp>
20 # if defined(BOOST_PP_LIMIT_DIM)
21 # undef BOOST_PP_LIMIT_DIM
23 # if defined(BOOST_PP_LIMIT_ITERATION_DIM)
24 # undef BOOST_PP_LIMIT_ITERATION_DIM
26 # if defined(BOOST_PP_LIMIT_SLOT_SIG)
27 # undef BOOST_PP_LIMIT_SLOT_SIG
29 # if defined(BOOST_PP_LIMIT_SLOT_COUNT)
30 # undef BOOST_PP_LIMIT_SLOT_COUNT
32 # if defined(BOOST_PP_LIMIT_WHILE)
33 # undef BOOST_PP_LIMIT_WHILE
36 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
38 # if defined(BOOST_PP_LIMIT_MAG)
39 # undef BOOST_PP_LIMIT_MAG
41 # if defined(BOOST_PP_LIMIT_VARIADIC)
42 # undef BOOST_PP_LIMIT_VARIADIC
44 # if defined(BOOST_PP_LIMIT_TUPLE)
45 # undef BOOST_PP_LIMIT_TUPLE
47 # if defined(BOOST_PP_LIMIT_FOR)
48 # undef BOOST_PP_LIMIT_FOR
50 # if defined(BOOST_PP_LIMIT_REPEAT)
51 # undef BOOST_PP_LIMIT_REPEAT
53 # if defined(BOOST_PP_LIMIT_SEQ)
54 # undef BOOST_PP_LIMIT_SEQ
56 # if defined(BOOST_PP_LIMIT_ITERATION)
57 # undef BOOST_PP_LIMIT_ITERATION
60 # define BOOST_PP_LIMIT_MAG 256
61 # define BOOST_PP_LIMIT_WHILE 256
62 # define BOOST_PP_LIMIT_VARIADIC 64
63 # define BOOST_PP_LIMIT_TUPLE 64
64 # define BOOST_PP_LIMIT_FOR 256
65 # define BOOST_PP_LIMIT_SEQ 256
66 # define BOOST_PP_LIMIT_REPEAT 256
67 # define BOOST_PP_LIMIT_ITERATION 256
71 # if defined(BOOST_PP_LIMIT_MAG)
72 # if !(BOOST_PP_LIMIT_MAG == 256 || BOOST_PP_LIMIT_MAG == 512 || BOOST_PP_LIMIT_MAG == 1024)
73 # undef BOOST_PP_LIMIT_MAG
74 # define BOOST_PP_LIMIT_MAG 256
75 # define BOOST_PP_LIMIT_WHILE 256
77 # define BOOST_PP_LIMIT_WHILE BOOST_PP_LIMIT_MAG
78 # if !defined(BOOST_PP_LIMIT_SEQ)
79 # define BOOST_PP_LIMIT_SEQ BOOST_PP_LIMIT_MAG
83 # define BOOST_PP_LIMIT_MAG 256
84 # define BOOST_PP_LIMIT_WHILE 256
87 # if defined(BOOST_PP_LIMIT_VARIADIC)
88 # if !(BOOST_PP_LIMIT_VARIADIC == 64 || BOOST_PP_LIMIT_VARIADIC == 128 || BOOST_PP_LIMIT_VARIADIC == 256)
89 # undef BOOST_PP_LIMIT_VARIADIC
90 # define BOOST_PP_LIMIT_VARIADIC 64
93 # define BOOST_PP_LIMIT_VARIADIC 64
96 # if defined(BOOST_PP_LIMIT_TUPLE)
97 # if !(BOOST_PP_LIMIT_TUPLE == 64 || BOOST_PP_LIMIT_TUPLE == 128 || BOOST_PP_LIMIT_TUPLE == 256)
98 # undef BOOST_PP_LIMIT_TUPLE
99 # define BOOST_PP_LIMIT_TUPLE 64
100 # elif BOOST_PP_LIMIT_TUPLE > BOOST_PP_LIMIT_VARIADIC
101 # undef BOOST_PP_LIMIT_VARIADIC
102 # define BOOST_PP_LIMIT_VARIADIC BOOST_PP_LIMIT_TUPLE
105 # define BOOST_PP_LIMIT_TUPLE 64
108 # if defined(BOOST_PP_LIMIT_FOR)
109 # if !(BOOST_PP_LIMIT_FOR == 256 || BOOST_PP_LIMIT_FOR == 512 || BOOST_PP_LIMIT_FOR == 1024)
110 # undef BOOST_PP_LIMIT_FOR
111 # define BOOST_PP_LIMIT_FOR 256
112 # elif BOOST_PP_LIMIT_FOR > BOOST_PP_LIMIT_MAG
113 # undef BOOST_PP_LIMIT_FOR
114 # define BOOST_PP_LIMIT_FOR BOOST_PP_LIMIT_MAG
117 # define BOOST_PP_LIMIT_FOR 256
120 # if defined(BOOST_PP_LIMIT_REPEAT)
121 # if !(BOOST_PP_LIMIT_REPEAT == 256 || BOOST_PP_LIMIT_REPEAT == 512 || BOOST_PP_LIMIT_REPEAT == 1024)
122 # undef BOOST_PP_LIMIT_REPEAT
123 # define BOOST_PP_LIMIT_REPEAT 256
124 # elif BOOST_PP_LIMIT_REPEAT > BOOST_PP_LIMIT_MAG
125 # undef BOOST_PP_LIMIT_REPEAT
126 # define BOOST_PP_LIMIT_REPEAT BOOST_PP_LIMIT_MAG
129 # define BOOST_PP_LIMIT_REPEAT 256
132 # if defined(BOOST_PP_LIMIT_SEQ)
133 # if !(BOOST_PP_LIMIT_SEQ == 256 || BOOST_PP_LIMIT_SEQ == 512 || BOOST_PP_LIMIT_SEQ == 1024)
134 # undef BOOST_PP_LIMIT_SEQ
135 # define BOOST_PP_LIMIT_SEQ 256
136 # elif BOOST_PP_LIMIT_SEQ > BOOST_PP_LIMIT_MAG
137 # undef BOOST_PP_LIMIT_SEQ
138 # define BOOST_PP_LIMIT_SEQ BOOST_PP_LIMIT_MAG
141 # define BOOST_PP_LIMIT_SEQ 256
144 # if defined(BOOST_PP_LIMIT_ITERATION)
145 # if !(BOOST_PP_LIMIT_ITERATION == 256 || BOOST_PP_LIMIT_ITERATION == 512 || BOOST_PP_LIMIT_ITERATION == 1024)
146 # undef BOOST_PP_LIMIT_ITERATION
147 # define BOOST_PP_LIMIT_ITERATION 256
148 # elif BOOST_PP_LIMIT_ITERATION > BOOST_PP_LIMIT_MAG
149 # undef BOOST_PP_LIMIT_ITERATION
150 # define BOOST_PP_LIMIT_ITERATION BOOST_PP_LIMIT_MAG
153 # define BOOST_PP_LIMIT_ITERATION 256
158 # define BOOST_PP_LIMIT_DIM 3
159 # define BOOST_PP_LIMIT_ITERATION_DIM 3
160 # define BOOST_PP_LIMIT_SLOT_SIG 10
161 # define BOOST_PP_LIMIT_SLOT_COUNT 5