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