for.hpp 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  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_REPETITION_FOR_HPP
  16. # define BOOST_PREPROCESSOR_REPETITION_FOR_HPP
  17. #
  18. # include <boost/preprocessor/config/config.hpp>
  19. #
  20. # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
  21. #
  22. # include <boost/preprocessor/cat.hpp>
  23. # include <boost/preprocessor/debug/error.hpp>
  24. # include <boost/preprocessor/facilities/empty.hpp>
  25. # include <boost/preprocessor/logical/bool.hpp>
  26. # include <boost/preprocessor/detail/auto_rec.hpp>
  27. #
  28. # /* BOOST_PP_FOR */
  29. #
  30. # if 0
  31. # define BOOST_PP_FOR(state, pred, op, macro)
  32. # endif
  33. #
  34. # define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256))
  35. #
  36. # define BOOST_PP_FOR_P(n) BOOST_PP_CAT(BOOST_PP_FOR_CHECK_, BOOST_PP_FOR_ ## n(1, BOOST_PP_FOR_SR_P, BOOST_PP_FOR_SR_O, BOOST_PP_FOR_SR_M))
  37. #
  38. # define BOOST_PP_FOR_SR_P(r, s) s
  39. # define BOOST_PP_FOR_SR_O(r, s) 0
  40. # define BOOST_PP_FOR_SR_M(r, s) BOOST_PP_NIL
  41. #
  42. # if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
  43. # include <boost/preprocessor/repetition/detail/edg/for.hpp>
  44. # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
  45. # include <boost/preprocessor/repetition/detail/msvc/for.hpp>
  46. # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
  47. # include <boost/preprocessor/repetition/detail/dmc/for.hpp>
  48. # else
  49. # include <boost/preprocessor/repetition/detail/for.hpp>
  50. # endif
  51. #
  52. # if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
  53. # define BOOST_PP_FOR_257_PR(s, p) BOOST_PP_BOOL(p##(257, s))
  54. # else
  55. # define BOOST_PP_FOR_257_PR(s, p) BOOST_PP_BOOL(p(257, s))
  56. # endif
  57. # define BOOST_PP_FOR_257_ERROR() BOOST_PP_ERROR(0x0002)
  58. # define BOOST_PP_FOR_257(s, p, o, m) \
  59. BOOST_PP_IIF \
  60. ( \
  61. BOOST_PP_FOR_257_PR(s,p), \
  62. BOOST_PP_FOR_257_ERROR, \
  63. BOOST_PP_EMPTY \
  64. ) \
  65. () \
  66. /**/
  67. // # define BOOST_PP_FOR_257(s, p, o, m) BOOST_PP_ERROR(0x0002)
  68. #
  69. # define BOOST_PP_FOR_CHECK_BOOST_PP_NIL 1
  70. #
  71. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_1(s, p, o, m) 0
  72. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_2(s, p, o, m) 0
  73. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_3(s, p, o, m) 0
  74. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_4(s, p, o, m) 0
  75. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_5(s, p, o, m) 0
  76. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_6(s, p, o, m) 0
  77. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_7(s, p, o, m) 0
  78. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_8(s, p, o, m) 0
  79. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_9(s, p, o, m) 0
  80. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_10(s, p, o, m) 0
  81. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_11(s, p, o, m) 0
  82. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_12(s, p, o, m) 0
  83. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_13(s, p, o, m) 0
  84. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_14(s, p, o, m) 0
  85. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_15(s, p, o, m) 0
  86. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_16(s, p, o, m) 0
  87. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_17(s, p, o, m) 0
  88. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_18(s, p, o, m) 0
  89. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_19(s, p, o, m) 0
  90. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_20(s, p, o, m) 0
  91. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_21(s, p, o, m) 0
  92. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_22(s, p, o, m) 0
  93. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_23(s, p, o, m) 0
  94. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_24(s, p, o, m) 0
  95. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_25(s, p, o, m) 0
  96. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_26(s, p, o, m) 0
  97. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_27(s, p, o, m) 0
  98. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_28(s, p, o, m) 0
  99. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_29(s, p, o, m) 0
  100. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_30(s, p, o, m) 0
  101. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_31(s, p, o, m) 0
  102. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_32(s, p, o, m) 0
  103. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_33(s, p, o, m) 0
  104. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_34(s, p, o, m) 0
  105. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_35(s, p, o, m) 0
  106. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_36(s, p, o, m) 0
  107. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_37(s, p, o, m) 0
  108. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_38(s, p, o, m) 0
  109. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_39(s, p, o, m) 0
  110. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_40(s, p, o, m) 0
  111. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_41(s, p, o, m) 0
  112. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_42(s, p, o, m) 0
  113. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_43(s, p, o, m) 0
  114. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_44(s, p, o, m) 0
  115. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_45(s, p, o, m) 0
  116. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_46(s, p, o, m) 0
  117. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_47(s, p, o, m) 0
  118. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_48(s, p, o, m) 0
  119. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_49(s, p, o, m) 0
  120. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_50(s, p, o, m) 0
  121. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_51(s, p, o, m) 0
  122. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_52(s, p, o, m) 0
  123. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_53(s, p, o, m) 0
  124. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_54(s, p, o, m) 0
  125. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_55(s, p, o, m) 0
  126. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_56(s, p, o, m) 0
  127. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_57(s, p, o, m) 0
  128. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_58(s, p, o, m) 0
  129. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_59(s, p, o, m) 0
  130. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_60(s, p, o, m) 0
  131. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_61(s, p, o, m) 0
  132. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_62(s, p, o, m) 0
  133. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_63(s, p, o, m) 0
  134. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_64(s, p, o, m) 0
  135. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_65(s, p, o, m) 0
  136. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_66(s, p, o, m) 0
  137. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_67(s, p, o, m) 0
  138. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_68(s, p, o, m) 0
  139. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_69(s, p, o, m) 0
  140. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_70(s, p, o, m) 0
  141. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_71(s, p, o, m) 0
  142. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_72(s, p, o, m) 0
  143. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_73(s, p, o, m) 0
  144. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_74(s, p, o, m) 0
  145. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_75(s, p, o, m) 0
  146. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_76(s, p, o, m) 0
  147. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_77(s, p, o, m) 0
  148. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_78(s, p, o, m) 0
  149. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_79(s, p, o, m) 0
  150. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_80(s, p, o, m) 0
  151. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_81(s, p, o, m) 0
  152. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_82(s, p, o, m) 0
  153. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_83(s, p, o, m) 0
  154. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_84(s, p, o, m) 0
  155. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_85(s, p, o, m) 0
  156. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_86(s, p, o, m) 0
  157. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_87(s, p, o, m) 0
  158. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_88(s, p, o, m) 0
  159. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_89(s, p, o, m) 0
  160. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_90(s, p, o, m) 0
  161. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_91(s, p, o, m) 0
  162. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_92(s, p, o, m) 0
  163. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_93(s, p, o, m) 0
  164. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_94(s, p, o, m) 0
  165. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_95(s, p, o, m) 0
  166. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_96(s, p, o, m) 0
  167. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_97(s, p, o, m) 0
  168. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_98(s, p, o, m) 0
  169. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_99(s, p, o, m) 0
  170. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_100(s, p, o, m) 0
  171. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_101(s, p, o, m) 0
  172. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_102(s, p, o, m) 0
  173. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_103(s, p, o, m) 0
  174. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_104(s, p, o, m) 0
  175. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_105(s, p, o, m) 0
  176. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_106(s, p, o, m) 0
  177. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_107(s, p, o, m) 0
  178. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_108(s, p, o, m) 0
  179. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_109(s, p, o, m) 0
  180. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_110(s, p, o, m) 0
  181. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_111(s, p, o, m) 0
  182. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_112(s, p, o, m) 0
  183. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_113(s, p, o, m) 0
  184. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_114(s, p, o, m) 0
  185. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_115(s, p, o, m) 0
  186. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_116(s, p, o, m) 0
  187. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_117(s, p, o, m) 0
  188. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_118(s, p, o, m) 0
  189. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_119(s, p, o, m) 0
  190. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_120(s, p, o, m) 0
  191. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_121(s, p, o, m) 0
  192. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_122(s, p, o, m) 0
  193. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_123(s, p, o, m) 0
  194. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_124(s, p, o, m) 0
  195. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_125(s, p, o, m) 0
  196. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_126(s, p, o, m) 0
  197. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_127(s, p, o, m) 0
  198. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_128(s, p, o, m) 0
  199. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_129(s, p, o, m) 0
  200. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_130(s, p, o, m) 0
  201. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_131(s, p, o, m) 0
  202. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_132(s, p, o, m) 0
  203. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_133(s, p, o, m) 0
  204. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_134(s, p, o, m) 0
  205. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_135(s, p, o, m) 0
  206. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_136(s, p, o, m) 0
  207. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_137(s, p, o, m) 0
  208. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_138(s, p, o, m) 0
  209. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_139(s, p, o, m) 0
  210. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_140(s, p, o, m) 0
  211. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_141(s, p, o, m) 0
  212. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_142(s, p, o, m) 0
  213. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_143(s, p, o, m) 0
  214. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_144(s, p, o, m) 0
  215. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_145(s, p, o, m) 0
  216. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_146(s, p, o, m) 0
  217. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_147(s, p, o, m) 0
  218. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_148(s, p, o, m) 0
  219. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_149(s, p, o, m) 0
  220. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_150(s, p, o, m) 0
  221. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_151(s, p, o, m) 0
  222. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_152(s, p, o, m) 0
  223. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_153(s, p, o, m) 0
  224. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_154(s, p, o, m) 0
  225. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_155(s, p, o, m) 0
  226. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_156(s, p, o, m) 0
  227. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_157(s, p, o, m) 0
  228. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_158(s, p, o, m) 0
  229. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_159(s, p, o, m) 0
  230. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_160(s, p, o, m) 0
  231. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_161(s, p, o, m) 0
  232. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_162(s, p, o, m) 0
  233. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_163(s, p, o, m) 0
  234. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_164(s, p, o, m) 0
  235. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_165(s, p, o, m) 0
  236. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_166(s, p, o, m) 0
  237. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_167(s, p, o, m) 0
  238. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_168(s, p, o, m) 0
  239. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_169(s, p, o, m) 0
  240. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_170(s, p, o, m) 0
  241. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_171(s, p, o, m) 0
  242. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_172(s, p, o, m) 0
  243. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_173(s, p, o, m) 0
  244. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_174(s, p, o, m) 0
  245. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_175(s, p, o, m) 0
  246. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_176(s, p, o, m) 0
  247. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_177(s, p, o, m) 0
  248. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_178(s, p, o, m) 0
  249. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_179(s, p, o, m) 0
  250. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_180(s, p, o, m) 0
  251. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_181(s, p, o, m) 0
  252. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_182(s, p, o, m) 0
  253. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_183(s, p, o, m) 0
  254. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_184(s, p, o, m) 0
  255. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_185(s, p, o, m) 0
  256. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_186(s, p, o, m) 0
  257. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_187(s, p, o, m) 0
  258. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_188(s, p, o, m) 0
  259. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_189(s, p, o, m) 0
  260. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_190(s, p, o, m) 0
  261. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_191(s, p, o, m) 0
  262. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_192(s, p, o, m) 0
  263. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_193(s, p, o, m) 0
  264. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_194(s, p, o, m) 0
  265. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_195(s, p, o, m) 0
  266. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_196(s, p, o, m) 0
  267. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_197(s, p, o, m) 0
  268. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_198(s, p, o, m) 0
  269. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_199(s, p, o, m) 0
  270. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_200(s, p, o, m) 0
  271. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_201(s, p, o, m) 0
  272. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_202(s, p, o, m) 0
  273. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_203(s, p, o, m) 0
  274. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_204(s, p, o, m) 0
  275. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_205(s, p, o, m) 0
  276. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_206(s, p, o, m) 0
  277. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_207(s, p, o, m) 0
  278. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_208(s, p, o, m) 0
  279. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_209(s, p, o, m) 0
  280. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_210(s, p, o, m) 0
  281. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_211(s, p, o, m) 0
  282. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_212(s, p, o, m) 0
  283. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_213(s, p, o, m) 0
  284. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_214(s, p, o, m) 0
  285. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_215(s, p, o, m) 0
  286. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_216(s, p, o, m) 0
  287. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_217(s, p, o, m) 0
  288. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_218(s, p, o, m) 0
  289. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_219(s, p, o, m) 0
  290. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_220(s, p, o, m) 0
  291. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_221(s, p, o, m) 0
  292. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_222(s, p, o, m) 0
  293. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_223(s, p, o, m) 0
  294. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_224(s, p, o, m) 0
  295. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_225(s, p, o, m) 0
  296. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_226(s, p, o, m) 0
  297. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_227(s, p, o, m) 0
  298. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_228(s, p, o, m) 0
  299. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_229(s, p, o, m) 0
  300. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_230(s, p, o, m) 0
  301. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_231(s, p, o, m) 0
  302. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_232(s, p, o, m) 0
  303. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_233(s, p, o, m) 0
  304. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_234(s, p, o, m) 0
  305. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_235(s, p, o, m) 0
  306. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_236(s, p, o, m) 0
  307. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_237(s, p, o, m) 0
  308. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_238(s, p, o, m) 0
  309. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_239(s, p, o, m) 0
  310. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_240(s, p, o, m) 0
  311. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_241(s, p, o, m) 0
  312. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_242(s, p, o, m) 0
  313. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_243(s, p, o, m) 0
  314. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_244(s, p, o, m) 0
  315. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_245(s, p, o, m) 0
  316. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_246(s, p, o, m) 0
  317. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_247(s, p, o, m) 0
  318. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_248(s, p, o, m) 0
  319. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_249(s, p, o, m) 0
  320. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_250(s, p, o, m) 0
  321. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_251(s, p, o, m) 0
  322. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_252(s, p, o, m) 0
  323. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_253(s, p, o, m) 0
  324. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_254(s, p, o, m) 0
  325. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_255(s, p, o, m) 0
  326. # define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_256(s, p, o, m) 0
  327. #
  328. # else
  329. #
  330. # include <boost/preprocessor/arithmetic/dec.hpp>
  331. # include <boost/preprocessor/cat.hpp>
  332. # include <boost/preprocessor/debug/error.hpp>
  333. # include <boost/preprocessor/facilities/empty.hpp>
  334. # include <boost/preprocessor/logical/bool.hpp>
  335. # include <boost/preprocessor/detail/auto_rec.hpp>
  336. # include <boost/preprocessor/config/limits.hpp>
  337. #
  338. # /* BOOST_PP_FOR */
  339. #
  340. # if 0
  341. # define BOOST_PP_FOR(state, pred, op, macro)
  342. # endif
  343. #
  344. # if BOOST_PP_LIMIT_FOR == 256
  345. # define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_DEC(BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256)))
  346. # elif BOOST_PP_LIMIT_FOR == 512
  347. # define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_DEC(BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 512)))
  348. # elif BOOST_PP_LIMIT_FOR == 1024
  349. # define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_DEC(BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 1024)))
  350. # else
  351. # error Incorrect value for the BOOST_PP_LIMIT_FOR limit
  352. # endif
  353. #
  354. # define BOOST_PP_FOR_P(n) BOOST_PP_FOR_P_DEC(BOOST_PP_DEC(n))
  355. # define BOOST_PP_FOR_P_DEC(n) BOOST_PP_CAT(BOOST_PP_FOR_CHECK_, BOOST_PP_CAT(BOOST_PP_FOR_ , n)(1, BOOST_PP_FOR_SR_P, BOOST_PP_FOR_SR_O, BOOST_PP_FOR_SR_M))
  356. #
  357. # define BOOST_PP_FOR_SR_P(r, s) s
  358. # define BOOST_PP_FOR_SR_O(r, s) 0
  359. # define BOOST_PP_FOR_SR_M(r, s) BOOST_PP_NIL
  360. #
  361. # if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
  362. # include <boost/preprocessor/repetition/detail/edg/for.hpp>
  363. # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
  364. # include <boost/preprocessor/repetition/detail/msvc/for.hpp>
  365. # elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
  366. # include <boost/preprocessor/repetition/detail/dmc/for.hpp>
  367. # else
  368. # include <boost/preprocessor/repetition/detail/for.hpp>
  369. # endif
  370. #
  371. # if BOOST_PP_LIMIT_FOR == 256
  372. #
  373. # if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
  374. # define BOOST_PP_FOR_257_PR(s, p) BOOST_PP_BOOL(p##(257, s))
  375. # else
  376. # define BOOST_PP_FOR_257_PR(s, p) BOOST_PP_BOOL(p(257, s))
  377. # endif
  378. # define BOOST_PP_FOR_257_ERROR() BOOST_PP_ERROR(0x0002)
  379. # define BOOST_PP_FOR_257(s, p, o, m) \
  380. BOOST_PP_IIF \
  381. ( \
  382. BOOST_PP_FOR_257_PR(s,p), \
  383. BOOST_PP_FOR_257_ERROR, \
  384. BOOST_PP_EMPTY \
  385. ) \
  386. () \
  387. /**/
  388. #
  389. # elif BOOST_PP_LIMIT_FOR == 512
  390. #
  391. # define BOOST_PP_FOR_513_PR(s, p) BOOST_PP_BOOL(p(513, s))
  392. # define BOOST_PP_FOR_513_ERROR() BOOST_PP_ERROR(0x0002)
  393. # define BOOST_PP_FOR_513(s, p, o, m) \
  394. BOOST_PP_IIF \
  395. ( \
  396. BOOST_PP_FOR_513_PR(s,p), \
  397. BOOST_PP_FOR_513_ERROR, \
  398. BOOST_PP_EMPTY \
  399. ) \
  400. () \
  401. /**/
  402. #
  403. # elif BOOST_PP_LIMIT_FOR == 1024
  404. #
  405. # define BOOST_PP_FOR_1025_PR(s, p) BOOST_PP_BOOL(p(1025, s))
  406. # define BOOST_PP_FOR_1025_ERROR() BOOST_PP_ERROR(0x0002)
  407. # define BOOST_PP_FOR_1025(s, p, o, m) \
  408. BOOST_PP_IIF \
  409. ( \
  410. BOOST_PP_FOR_1025_PR(s,p), \
  411. BOOST_PP_FOR_1025_ERROR, \
  412. BOOST_PP_EMPTY \
  413. ) \
  414. () \
  415. /**/
  416. #
  417. # endif
  418. #
  419. # define BOOST_PP_FOR_CHECK_BOOST_PP_NIL 1
  420. #
  421. # if BOOST_PP_LIMIT_FOR == 256
  422. # include <boost/preprocessor/repetition/limits/for_256.hpp>
  423. # elif BOOST_PP_LIMIT_FOR == 512
  424. # include <boost/preprocessor/repetition/limits/for_256.hpp>
  425. # include <boost/preprocessor/repetition/limits/for_512.hpp>
  426. # elif BOOST_PP_LIMIT_FOR == 1024
  427. # include <boost/preprocessor/repetition/limits/for_256.hpp>
  428. # include <boost/preprocessor/repetition/limits/for_512.hpp>
  429. # include <boost/preprocessor/repetition/limits/for_1024.hpp>
  430. # endif
  431. #
  432. # endif
  433. #
  434. # endif