1 # /* Copyright (C) 2001
2 #  * Housemarque Oy
3 #  * http://www.housemarque.com
4 #  *
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)
8 #  */
9 #
10 # /* Revised by Paul Mensonides (2002) */
11 # /* Revised by Edward Diener (2020) */
12 #
13 # /* See http://www.boost.org for most recent version. */
14 #
15 # ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
16 # define BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
17 #
18 # include <boost/preprocessor/config/config.hpp>
19 #
20 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
21 #
22 # /* BOOST_PP_INC */
23 #
24 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
25 #    define BOOST_PP_INC(x) BOOST_PP_INC_I(x)
26 # else
27 #    define BOOST_PP_INC(x) BOOST_PP_INC_OO((x))
28 #    define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par
29 # endif
30 #
31 # define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x
32 #
33 # define BOOST_PP_INC_0 1
34 # define BOOST_PP_INC_1 2
35 # define BOOST_PP_INC_2 3
36 # define BOOST_PP_INC_3 4
37 # define BOOST_PP_INC_4 5
38 # define BOOST_PP_INC_5 6
39 # define BOOST_PP_INC_6 7
40 # define BOOST_PP_INC_7 8
41 # define BOOST_PP_INC_8 9
42 # define BOOST_PP_INC_9 10
43 # define BOOST_PP_INC_10 11
44 # define BOOST_PP_INC_11 12
45 # define BOOST_PP_INC_12 13
46 # define BOOST_PP_INC_13 14
47 # define BOOST_PP_INC_14 15
48 # define BOOST_PP_INC_15 16
49 # define BOOST_PP_INC_16 17
50 # define BOOST_PP_INC_17 18
51 # define BOOST_PP_INC_18 19
52 # define BOOST_PP_INC_19 20
53 # define BOOST_PP_INC_20 21
54 # define BOOST_PP_INC_21 22
55 # define BOOST_PP_INC_22 23
56 # define BOOST_PP_INC_23 24
57 # define BOOST_PP_INC_24 25
58 # define BOOST_PP_INC_25 26
59 # define BOOST_PP_INC_26 27
60 # define BOOST_PP_INC_27 28
61 # define BOOST_PP_INC_28 29
62 # define BOOST_PP_INC_29 30
63 # define BOOST_PP_INC_30 31
64 # define BOOST_PP_INC_31 32
65 # define BOOST_PP_INC_32 33
66 # define BOOST_PP_INC_33 34
67 # define BOOST_PP_INC_34 35
68 # define BOOST_PP_INC_35 36
69 # define BOOST_PP_INC_36 37
70 # define BOOST_PP_INC_37 38
71 # define BOOST_PP_INC_38 39
72 # define BOOST_PP_INC_39 40
73 # define BOOST_PP_INC_40 41
74 # define BOOST_PP_INC_41 42
75 # define BOOST_PP_INC_42 43
76 # define BOOST_PP_INC_43 44
77 # define BOOST_PP_INC_44 45
78 # define BOOST_PP_INC_45 46
79 # define BOOST_PP_INC_46 47
80 # define BOOST_PP_INC_47 48
81 # define BOOST_PP_INC_48 49
82 # define BOOST_PP_INC_49 50
83 # define BOOST_PP_INC_50 51
84 # define BOOST_PP_INC_51 52
85 # define BOOST_PP_INC_52 53
86 # define BOOST_PP_INC_53 54
87 # define BOOST_PP_INC_54 55
88 # define BOOST_PP_INC_55 56
89 # define BOOST_PP_INC_56 57
90 # define BOOST_PP_INC_57 58
91 # define BOOST_PP_INC_58 59
92 # define BOOST_PP_INC_59 60
93 # define BOOST_PP_INC_60 61
94 # define BOOST_PP_INC_61 62
95 # define BOOST_PP_INC_62 63
96 # define BOOST_PP_INC_63 64
97 # define BOOST_PP_INC_64 65
98 # define BOOST_PP_INC_65 66
99 # define BOOST_PP_INC_66 67
100 # define BOOST_PP_INC_67 68
101 # define BOOST_PP_INC_68 69
102 # define BOOST_PP_INC_69 70
103 # define BOOST_PP_INC_70 71
104 # define BOOST_PP_INC_71 72
105 # define BOOST_PP_INC_72 73
106 # define BOOST_PP_INC_73 74
107 # define BOOST_PP_INC_74 75
108 # define BOOST_PP_INC_75 76
109 # define BOOST_PP_INC_76 77
110 # define BOOST_PP_INC_77 78
111 # define BOOST_PP_INC_78 79
112 # define BOOST_PP_INC_79 80
113 # define BOOST_PP_INC_80 81
114 # define BOOST_PP_INC_81 82
115 # define BOOST_PP_INC_82 83
116 # define BOOST_PP_INC_83 84
117 # define BOOST_PP_INC_84 85
118 # define BOOST_PP_INC_85 86
119 # define BOOST_PP_INC_86 87
120 # define BOOST_PP_INC_87 88
121 # define BOOST_PP_INC_88 89
122 # define BOOST_PP_INC_89 90
123 # define BOOST_PP_INC_90 91
124 # define BOOST_PP_INC_91 92
125 # define BOOST_PP_INC_92 93
126 # define BOOST_PP_INC_93 94
127 # define BOOST_PP_INC_94 95
128 # define BOOST_PP_INC_95 96
129 # define BOOST_PP_INC_96 97
130 # define BOOST_PP_INC_97 98
131 # define BOOST_PP_INC_98 99
132 # define BOOST_PP_INC_99 100
133 # define BOOST_PP_INC_100 101
134 # define BOOST_PP_INC_101 102
135 # define BOOST_PP_INC_102 103
136 # define BOOST_PP_INC_103 104
137 # define BOOST_PP_INC_104 105
138 # define BOOST_PP_INC_105 106
139 # define BOOST_PP_INC_106 107
140 # define BOOST_PP_INC_107 108
141 # define BOOST_PP_INC_108 109
142 # define BOOST_PP_INC_109 110
143 # define BOOST_PP_INC_110 111
144 # define BOOST_PP_INC_111 112
145 # define BOOST_PP_INC_112 113
146 # define BOOST_PP_INC_113 114
147 # define BOOST_PP_INC_114 115
148 # define BOOST_PP_INC_115 116
149 # define BOOST_PP_INC_116 117
150 # define BOOST_PP_INC_117 118
151 # define BOOST_PP_INC_118 119
152 # define BOOST_PP_INC_119 120
153 # define BOOST_PP_INC_120 121
154 # define BOOST_PP_INC_121 122
155 # define BOOST_PP_INC_122 123
156 # define BOOST_PP_INC_123 124
157 # define BOOST_PP_INC_124 125
158 # define BOOST_PP_INC_125 126
159 # define BOOST_PP_INC_126 127
160 # define BOOST_PP_INC_127 128
161 # define BOOST_PP_INC_128 129
162 # define BOOST_PP_INC_129 130
163 # define BOOST_PP_INC_130 131
164 # define BOOST_PP_INC_131 132
165 # define BOOST_PP_INC_132 133
166 # define BOOST_PP_INC_133 134
167 # define BOOST_PP_INC_134 135
168 # define BOOST_PP_INC_135 136
169 # define BOOST_PP_INC_136 137
170 # define BOOST_PP_INC_137 138
171 # define BOOST_PP_INC_138 139
172 # define BOOST_PP_INC_139 140
173 # define BOOST_PP_INC_140 141
174 # define BOOST_PP_INC_141 142
175 # define BOOST_PP_INC_142 143
176 # define BOOST_PP_INC_143 144
177 # define BOOST_PP_INC_144 145
178 # define BOOST_PP_INC_145 146
179 # define BOOST_PP_INC_146 147
180 # define BOOST_PP_INC_147 148
181 # define BOOST_PP_INC_148 149
182 # define BOOST_PP_INC_149 150
183 # define BOOST_PP_INC_150 151
184 # define BOOST_PP_INC_151 152
185 # define BOOST_PP_INC_152 153
186 # define BOOST_PP_INC_153 154
187 # define BOOST_PP_INC_154 155
188 # define BOOST_PP_INC_155 156
189 # define BOOST_PP_INC_156 157
190 # define BOOST_PP_INC_157 158
191 # define BOOST_PP_INC_158 159
192 # define BOOST_PP_INC_159 160
193 # define BOOST_PP_INC_160 161
194 # define BOOST_PP_INC_161 162
195 # define BOOST_PP_INC_162 163
196 # define BOOST_PP_INC_163 164
197 # define BOOST_PP_INC_164 165
198 # define BOOST_PP_INC_165 166
199 # define BOOST_PP_INC_166 167
200 # define BOOST_PP_INC_167 168
201 # define BOOST_PP_INC_168 169
202 # define BOOST_PP_INC_169 170
203 # define BOOST_PP_INC_170 171
204 # define BOOST_PP_INC_171 172
205 # define BOOST_PP_INC_172 173
206 # define BOOST_PP_INC_173 174
207 # define BOOST_PP_INC_174 175
208 # define BOOST_PP_INC_175 176
209 # define BOOST_PP_INC_176 177
210 # define BOOST_PP_INC_177 178
211 # define BOOST_PP_INC_178 179
212 # define BOOST_PP_INC_179 180
213 # define BOOST_PP_INC_180 181
214 # define BOOST_PP_INC_181 182
215 # define BOOST_PP_INC_182 183
216 # define BOOST_PP_INC_183 184
217 # define BOOST_PP_INC_184 185
218 # define BOOST_PP_INC_185 186
219 # define BOOST_PP_INC_186 187
220 # define BOOST_PP_INC_187 188
221 # define BOOST_PP_INC_188 189
222 # define BOOST_PP_INC_189 190
223 # define BOOST_PP_INC_190 191
224 # define BOOST_PP_INC_191 192
225 # define BOOST_PP_INC_192 193
226 # define BOOST_PP_INC_193 194
227 # define BOOST_PP_INC_194 195
228 # define BOOST_PP_INC_195 196
229 # define BOOST_PP_INC_196 197
230 # define BOOST_PP_INC_197 198
231 # define BOOST_PP_INC_198 199
232 # define BOOST_PP_INC_199 200
233 # define BOOST_PP_INC_200 201
234 # define BOOST_PP_INC_201 202
235 # define BOOST_PP_INC_202 203
236 # define BOOST_PP_INC_203 204
237 # define BOOST_PP_INC_204 205
238 # define BOOST_PP_INC_205 206
239 # define BOOST_PP_INC_206 207
240 # define BOOST_PP_INC_207 208
241 # define BOOST_PP_INC_208 209
242 # define BOOST_PP_INC_209 210
243 # define BOOST_PP_INC_210 211
244 # define BOOST_PP_INC_211 212
245 # define BOOST_PP_INC_212 213
246 # define BOOST_PP_INC_213 214
247 # define BOOST_PP_INC_214 215
248 # define BOOST_PP_INC_215 216
249 # define BOOST_PP_INC_216 217
250 # define BOOST_PP_INC_217 218
251 # define BOOST_PP_INC_218 219
252 # define BOOST_PP_INC_219 220
253 # define BOOST_PP_INC_220 221
254 # define BOOST_PP_INC_221 222
255 # define BOOST_PP_INC_222 223
256 # define BOOST_PP_INC_223 224
257 # define BOOST_PP_INC_224 225
258 # define BOOST_PP_INC_225 226
259 # define BOOST_PP_INC_226 227
260 # define BOOST_PP_INC_227 228
261 # define BOOST_PP_INC_228 229
262 # define BOOST_PP_INC_229 230
263 # define BOOST_PP_INC_230 231
264 # define BOOST_PP_INC_231 232
265 # define BOOST_PP_INC_232 233
266 # define BOOST_PP_INC_233 234
267 # define BOOST_PP_INC_234 235
268 # define BOOST_PP_INC_235 236
269 # define BOOST_PP_INC_236 237
270 # define BOOST_PP_INC_237 238
271 # define BOOST_PP_INC_238 239
272 # define BOOST_PP_INC_239 240
273 # define BOOST_PP_INC_240 241
274 # define BOOST_PP_INC_241 242
275 # define BOOST_PP_INC_242 243
276 # define BOOST_PP_INC_243 244
277 # define BOOST_PP_INC_244 245
278 # define BOOST_PP_INC_245 246
279 # define BOOST_PP_INC_246 247
280 # define BOOST_PP_INC_247 248
281 # define BOOST_PP_INC_248 249
282 # define BOOST_PP_INC_249 250
283 # define BOOST_PP_INC_250 251
284 # define BOOST_PP_INC_251 252
285 # define BOOST_PP_INC_252 253
286 # define BOOST_PP_INC_253 254
287 # define BOOST_PP_INC_254 255
288 # define BOOST_PP_INC_255 256
289 # define BOOST_PP_INC_256 256
290 #
291 # else
292 #
293 # /* BOOST_PP_INC */
294 #
295 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
296 #    define BOOST_PP_INC(x) BOOST_PP_INC_I(x)
297 # else
298 #    define BOOST_PP_INC(x) BOOST_PP_INC_OO((x))
299 #    define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par
300 # endif
301 #
302 # define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x
303 #
304 # include <boost/preprocessor/config/limits.hpp>
305 #
306 # if BOOST_PP_LIMIT_MAG == 256
307 # include <boost/preprocessor/arithmetic/limits/inc_256.hpp>
308 # elif BOOST_PP_LIMIT_MAG == 512
309 # include <boost/preprocessor/arithmetic/limits/inc_256.hpp>
310 # include <boost/preprocessor/arithmetic/limits/inc_512.hpp>
311 # elif BOOST_PP_LIMIT_MAG == 1024
312 # include <boost/preprocessor/arithmetic/limits/inc_256.hpp>
313 # include <boost/preprocessor/arithmetic/limits/inc_512.hpp>
314 # include <boost/preprocessor/arithmetic/limits/inc_1024.hpp>
315 # else
316 # error Incorrect value for the BOOST_PP_LIMIT_MAG limit
317 # endif
318 #
319 # endif
320 #
321 # endif
322