]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | # /* ************************************************************************** |
2 | # * * | |
3 | # * (C) Copyright Paul Mensonides 2002. | |
4 | # * Distributed under the Boost Software License, Version 1.0. (See | |
5 | # * accompanying file LICENSE_1_0.txt or copy at | |
6 | # * http://www.boost.org/LICENSE_1_0.txt) | |
7 | # * * | |
8 | # ************************************************************************** */ | |
9 | # | |
20effc67 | 10 | # /* Revised by Edward Diener (2011,2020) */ |
7c673cae FG |
11 | # |
12 | # /* See http://www.boost.org for most recent version. */ | |
13 | # | |
20effc67 | 14 | # include <boost/preprocessor/config/limits.hpp> |
7c673cae | 15 | # include <boost/preprocessor/arithmetic/add.hpp> |
20effc67 TL |
16 | # include <boost/preprocessor/arithmetic/dec.hpp> |
17 | # include <boost/preprocessor/arithmetic/div.hpp> | |
18 | # include <boost/preprocessor/arithmetic/inc.hpp> | |
7c673cae FG |
19 | # include <boost/preprocessor/arithmetic/mod.hpp> |
20 | # include <boost/preprocessor/arithmetic/sub.hpp> | |
21 | # include <boost/preprocessor/cat.hpp> | |
22 | # include <boost/preprocessor/comparison/equal.hpp> | |
23 | # include <boost/preprocessor/comparison/less.hpp> | |
24 | # include <boost/preprocessor/control/iif.hpp> | |
20effc67 | 25 | # include <boost/preprocessor/control/expr_iif.hpp> |
7c673cae | 26 | # include <boost/preprocessor/facilities/is_empty.hpp> |
20effc67 | 27 | # include <boost/preprocessor/logical/bitor.hpp> |
7c673cae FG |
28 | # include <boost/preprocessor/logical/not.hpp> |
29 | # include <boost/preprocessor/seq.hpp> | |
30 | # include <boost/preprocessor/array/elem.hpp> | |
31 | # include <boost/preprocessor/array/size.hpp> | |
32 | # include <boost/preprocessor/tuple/elem.hpp> | |
33 | # include <boost/preprocessor/tuple/size.hpp> | |
34 | # include <boost/preprocessor/list/at.hpp> | |
35 | # include <boost/preprocessor/list/size.hpp> | |
36 | # include <boost/preprocessor/variadic/elem.hpp> | |
37 | # include <boost/preprocessor/variadic/size.hpp> | |
20effc67 | 38 | # include <boost/preprocessor/variadic/has_opt.hpp> |
7c673cae FG |
39 | # include <libs/preprocessor/test/test.h> |
40 | ||
41 | # define SEQ_NONE () | |
42 | # define SEQ (4)(1)(5)(2) | |
43 | ||
44 | # define SEQ_100 \ | |
92f5a8d4 TL |
45 | (1)(2)(3)(4)(5)(6)(7)(8)(9) \ |
46 | (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ | |
47 | (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ | |
48 | (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ | |
49 | (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ | |
50 | (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ | |
51 | (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ | |
52 | (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ | |
53 | (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ | |
54 | (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ | |
55 | (100) | |
56 | ||
7c673cae | 57 | # define SEQ_255 \ |
92f5a8d4 TL |
58 | (1)(2)(3)(4)(5)(6)(7)(8)(9) \ |
59 | (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ | |
60 | (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ | |
61 | (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ | |
62 | (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ | |
63 | (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ | |
64 | (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ | |
65 | (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ | |
66 | (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ | |
67 | (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ | |
68 | (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ | |
69 | (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ | |
70 | (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ | |
71 | (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ | |
72 | (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ | |
73 | (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ | |
74 | (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ | |
75 | (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ | |
76 | (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ | |
77 | (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ | |
78 | (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ | |
79 | (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ | |
80 | (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ | |
81 | (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ | |
82 | (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ | |
83 | (250)(251)(252)(253)(254)(255) | |
84 | ||
7c673cae FG |
85 | # define SEQ_256 SEQ_255(256) |
86 | ||
20effc67 TL |
87 | # if BOOST_PP_LIMIT_SEQ == 512 |
88 | ||
89 | # define SEQ_511 \ | |
90 | (1)(2)(3)(4)(5)(6)(7)(8)(9) \ | |
91 | (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ | |
92 | (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ | |
93 | (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ | |
94 | (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ | |
95 | (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ | |
96 | (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ | |
97 | (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ | |
98 | (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ | |
99 | (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ | |
100 | (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ | |
101 | (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ | |
102 | (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ | |
103 | (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ | |
104 | (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ | |
105 | (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ | |
106 | (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ | |
107 | (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ | |
108 | (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ | |
109 | (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ | |
110 | (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ | |
111 | (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ | |
112 | (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ | |
113 | (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ | |
114 | (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ | |
115 | (250)(251)(252)(253)(254)(255)(256)(257)(258)(259) \ | |
116 | (260)(261)(262)(263)(264)(265)(266)(267)(268)(269) \ | |
117 | (270)(271)(272)(273)(274)(275)(276)(277)(278)(279) \ | |
118 | (280)(281)(282)(283)(284)(285)(286)(287)(288)(289) \ | |
119 | (290)(291)(292)(293)(294)(295)(296)(297)(298)(299) \ | |
120 | (300)(301)(302)(303)(304)(305)(306)(307)(308)(309) \ | |
121 | (310)(311)(312)(313)(314)(315)(316)(317)(318)(319) \ | |
122 | (320)(321)(322)(323)(324)(325)(326)(327)(328)(329) \ | |
123 | (330)(331)(332)(333)(334)(335)(336)(337)(338)(339) \ | |
124 | (340)(341)(342)(343)(344)(345)(346)(347)(348)(349) \ | |
125 | (350)(351)(352)(353)(354)(355)(356)(357)(358)(359) \ | |
126 | (360)(361)(362)(363)(364)(365)(366)(367)(368)(369) \ | |
127 | (370)(371)(372)(373)(374)(375)(376)(377)(378)(379) \ | |
128 | (380)(381)(382)(383)(384)(385)(386)(387)(388)(389) \ | |
129 | (390)(391)(392)(393)(394)(395)(396)(397)(398)(399) \ | |
130 | (400)(401)(402)(403)(404)(405)(406)(407)(408)(409) \ | |
131 | (410)(411)(412)(413)(414)(415)(416)(417)(418)(419) \ | |
132 | (420)(421)(422)(423)(424)(425)(426)(427)(428)(429) \ | |
133 | (430)(431)(432)(433)(434)(435)(436)(437)(438)(439) \ | |
134 | (440)(441)(442)(443)(444)(445)(446)(447)(448)(449) \ | |
135 | (450)(451)(452)(453)(454)(455)(456)(457)(458)(459) \ | |
136 | (460)(461)(462)(463)(464)(465)(466)(467)(468)(469) \ | |
137 | (470)(471)(472)(473)(474)(475)(476)(477)(478)(479) \ | |
138 | (480)(481)(482)(483)(484)(485)(486)(487)(488)(489) \ | |
139 | (490)(491)(492)(493)(494)(495)(496)(497)(498)(499) \ | |
140 | (500)(501)(502)(503)(504)(505)(506)(507)(508)(509) \ | |
141 | (510)(511) | |
142 | ||
143 | # define SEQ_512 SEQ_511(512) | |
144 | ||
145 | # endif | |
146 | ||
147 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
148 | ||
149 | # define SEQ_1023 \ | |
150 | (1)(2)(3)(4)(5)(6)(7)(8)(9) \ | |
151 | (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \ | |
152 | (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \ | |
153 | (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \ | |
154 | (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \ | |
155 | (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \ | |
156 | (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \ | |
157 | (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \ | |
158 | (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \ | |
159 | (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \ | |
160 | (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \ | |
161 | (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \ | |
162 | (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \ | |
163 | (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \ | |
164 | (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \ | |
165 | (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \ | |
166 | (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \ | |
167 | (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \ | |
168 | (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \ | |
169 | (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \ | |
170 | (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \ | |
171 | (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \ | |
172 | (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \ | |
173 | (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \ | |
174 | (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \ | |
175 | (250)(251)(252)(253)(254)(255)(256)(257)(258)(259) \ | |
176 | (260)(261)(262)(263)(264)(265)(266)(267)(268)(269) \ | |
177 | (270)(271)(272)(273)(274)(275)(276)(277)(278)(279) \ | |
178 | (280)(281)(282)(283)(284)(285)(286)(287)(288)(289) \ | |
179 | (290)(291)(292)(293)(294)(295)(296)(297)(298)(299) \ | |
180 | (300)(301)(302)(303)(304)(305)(306)(307)(308)(309) \ | |
181 | (310)(311)(312)(313)(314)(315)(316)(317)(318)(319) \ | |
182 | (320)(321)(322)(323)(324)(325)(326)(327)(328)(329) \ | |
183 | (330)(331)(332)(333)(334)(335)(336)(337)(338)(339) \ | |
184 | (340)(341)(342)(343)(344)(345)(346)(347)(348)(349) \ | |
185 | (350)(351)(352)(353)(354)(355)(356)(357)(358)(359) \ | |
186 | (360)(361)(362)(363)(364)(365)(366)(367)(368)(369) \ | |
187 | (370)(371)(372)(373)(374)(375)(376)(377)(378)(379) \ | |
188 | (380)(381)(382)(383)(384)(385)(386)(387)(388)(389) \ | |
189 | (390)(391)(392)(393)(394)(395)(396)(397)(398)(399) \ | |
190 | (400)(401)(402)(403)(404)(405)(406)(407)(408)(409) \ | |
191 | (410)(411)(412)(413)(414)(415)(416)(417)(418)(419) \ | |
192 | (420)(421)(422)(423)(424)(425)(426)(427)(428)(429) \ | |
193 | (430)(431)(432)(433)(434)(435)(436)(437)(438)(439) \ | |
194 | (440)(441)(442)(443)(444)(445)(446)(447)(448)(449) \ | |
195 | (450)(451)(452)(453)(454)(455)(456)(457)(458)(459) \ | |
196 | (460)(461)(462)(463)(464)(465)(466)(467)(468)(469) \ | |
197 | (470)(471)(472)(473)(474)(475)(476)(477)(478)(479) \ | |
198 | (480)(481)(482)(483)(484)(485)(486)(487)(488)(489) \ | |
199 | (490)(491)(492)(493)(494)(495)(496)(497)(498)(499) \ | |
200 | (500)(501)(502)(503)(504)(505)(506)(507)(508)(509) \ | |
201 | (510)(511)(512) \ | |
202 | (513)(514)(515)(516)(517)(518)(519)(520)(521) \ | |
203 | (522)(523)(524)(525)(526)(527)(528)(529)(530)(531) \ | |
204 | (532)(533)(534)(535)(536)(537)(538)(539)(540)(541) \ | |
205 | (542)(543)(544)(545)(546)(547)(548)(549)(550)(551) \ | |
206 | (552)(553)(554)(555)(556)(557)(558)(559)(560)(561) \ | |
207 | (562)(563)(564)(565)(566)(567)(568)(569)(570)(571) \ | |
208 | (572)(573)(574)(575)(576)(577)(578)(579)(580)(581) \ | |
209 | (582)(583)(584)(585)(586)(587)(588)(589)(590)(591) \ | |
210 | (592)(593)(594)(595)(596)(597)(598)(599)(600)(601) \ | |
211 | (602)(603)(604)(605)(606)(607)(608)(609)(610)(611) \ | |
212 | (612)(613)(614)(615)(616)(617)(618)(619)(620)(621) \ | |
213 | (622)(623)(624)(625)(626)(627)(628)(629)(630)(631) \ | |
214 | (632)(633)(634)(635)(636)(637)(638)(639)(640)(641) \ | |
215 | (642)(643)(644)(645)(646)(647)(648)(649)(650)(651) \ | |
216 | (652)(653)(654)(655)(656)(657)(658)(659)(660)(661) \ | |
217 | (662)(663)(664)(665)(666)(667)(668)(669)(670)(671) \ | |
218 | (672)(673)(674)(675)(676)(677)(678)(679)(680)(681) \ | |
219 | (682)(683)(684)(685)(686)(687)(688)(689)(690)(691) \ | |
220 | (692)(693)(694)(695)(696)(697)(698)(699)(700)(701) \ | |
221 | (702)(703)(704)(705)(706)(707)(708)(709)(710)(711) \ | |
222 | (712)(713)(714)(715)(716)(717)(718)(719)(720)(721) \ | |
223 | (722)(723)(724)(725)(726)(727)(728)(729)(730)(731) \ | |
224 | (732)(733)(734)(735)(736)(737)(738)(739)(740)(741) \ | |
225 | (742)(743)(744)(745)(746)(747)(748)(749)(750)(751) \ | |
226 | (752)(753)(754)(755)(756)(757)(758)(759)(760)(761) \ | |
227 | (762)(763)(764)(765)(766)(767)(768)(769)(770)(771) \ | |
228 | (772)(773)(774)(775)(776)(777)(778)(779)(780)(781) \ | |
229 | (782)(783)(784)(785)(786)(787)(788)(789)(790)(791) \ | |
230 | (792)(793)(794)(795)(796)(797)(798)(799)(800)(801) \ | |
231 | (802)(803)(804)(805)(806)(807)(808)(809)(810)(811) \ | |
232 | (812)(813)(814)(815)(816)(817)(818)(819)(820)(821) \ | |
233 | (822)(823)(824)(825)(826)(827)(828)(829)(830)(831) \ | |
234 | (832)(833)(834)(835)(836)(837)(838)(839)(840)(841) \ | |
235 | (842)(843)(844)(845)(846)(847)(848)(849)(850)(851) \ | |
236 | (852)(853)(854)(855)(856)(857)(858)(859)(860)(861) \ | |
237 | (862)(863)(864)(865)(866)(867)(868)(869)(870)(871) \ | |
238 | (872)(873)(874)(875)(876)(877)(878)(879)(880)(881) \ | |
239 | (882)(883)(884)(885)(886)(887)(888)(889)(890)(891) \ | |
240 | (892)(893)(894)(895)(896)(897)(898)(899)(900)(901) \ | |
241 | (902)(903)(904)(905)(906)(907)(908)(909)(910)(911) \ | |
242 | (912)(913)(914)(915)(916)(917)(918)(919)(920)(921) \ | |
243 | (922)(923)(924)(925)(926)(927)(928)(929)(930)(931) \ | |
244 | (932)(933)(934)(935)(936)(937)(938)(939)(940)(941) \ | |
245 | (942)(943)(944)(945)(946)(947)(948)(949)(950)(951) \ | |
246 | (952)(953)(954)(955)(956)(957)(958)(959)(960)(961) \ | |
247 | (962)(963)(964)(965)(966)(967)(968)(969)(970)(971) \ | |
248 | (972)(973)(974)(975)(976)(977)(978)(979)(980)(981) \ | |
249 | (982)(983)(984)(985)(986)(987)(988)(989)(990)(991) \ | |
250 | (992)(993)(994)(995)(996)(997)(998)(999)(1000)(1001) \ | |
251 | (1002)(1003)(1004)(1005)(1006)(1007)(1008)(1009)(1010)(1011) \ | |
252 | (1012)(1013)(1014)(1015)(1016)(1017)(1018)(1019)(1020)(1021) \ | |
253 | (1022)(1023) | |
254 | ||
255 | # define SEQ_1024 SEQ_1023(1024) | |
256 | ||
257 | # endif | |
258 | ||
7c673cae FG |
259 | # define SEQVAR (4,5,8,3,61)(1,0)(5,22,43)(2)(17,45,33) |
260 | ||
261 | # define REVERSAL(s, x, y) BOOST_PP_SUB(y, x) | |
262 | # define SUB_S(s, x, y) BOOST_PP_SUB(x, y) | |
263 | # define ADD_S(s, x, y) BOOST_PP_ADD(x, y) | |
264 | # define CAT_S(s, x, y) BOOST_PP_CAT(x, BOOST_PP_IS_EMPTY(y)) | |
265 | ||
266 | BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_HEAD(SEQ_NONE)) == 1 END | |
267 | BEGIN BOOST_PP_SEQ_HEAD(SEQ) == 4 END | |
268 | BEGIN BOOST_PP_SEQ_HEAD(SEQ_255) == 1 END | |
269 | BEGIN BOOST_PP_SEQ_HEAD(SEQ_256) == 1 END | |
270 | ||
20effc67 TL |
271 | # if BOOST_PP_LIMIT_SEQ == 512 |
272 | ||
273 | BEGIN BOOST_PP_SEQ_HEAD(SEQ_511) == 1 END | |
274 | BEGIN BOOST_PP_SEQ_HEAD(SEQ_512) == 1 END | |
275 | ||
276 | # endif | |
277 | ||
278 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
279 | ||
280 | BEGIN BOOST_PP_SEQ_HEAD(SEQ_1023) == 1 END | |
281 | BEGIN BOOST_PP_SEQ_HEAD(SEQ_1024) == 1 END | |
282 | ||
283 | # endif | |
284 | ||
7c673cae FG |
285 | BEGIN BOOST_PP_SEQ_FOLD_LEFT(CAT_S, 1, SEQ_NONE) == 11 END |
286 | BEGIN BOOST_PP_SEQ_FOLD_LEFT(SUB_S, 22, SEQ) == 10 END | |
287 | BEGIN BOOST_PP_SEQ_FOLD_RIGHT(CAT_S, 2, SEQ_NONE) == 21 END | |
288 | BEGIN BOOST_PP_SEQ_FOLD_RIGHT(ADD_S, 0, SEQ) == 12 END | |
289 | BEGIN BOOST_PP_SEQ_FOLD_RIGHT(REVERSAL, 0, SEQ) == 4 END | |
290 | ||
291 | BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ_NONE))) == 1 END | |
292 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ)) == 2514 END | |
293 | ||
20effc67 TL |
294 | # if BOOST_PP_LIMIT_SEQ == 512 |
295 | ||
296 | BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(SEQ_512)) == 512 END | |
297 | ||
298 | #endif | |
299 | ||
300 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
301 | ||
302 | BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(SEQ_1024)) == 1024 END | |
303 | ||
304 | #endif | |
305 | ||
7c673cae FG |
306 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(2, SEQ)) == 52 END |
307 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(99, SEQ_100)) == 100 END | |
308 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(255, SEQ_256)) == 256 END | |
20effc67 TL |
309 | |
310 | # if BOOST_PP_LIMIT_SEQ == 512 | |
311 | ||
312 | BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REST_N(509, SEQ_511)) == 510 END | |
313 | ||
314 | #endif | |
315 | ||
316 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
317 | ||
318 | BEGIN BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REST_N(1020, SEQ_1023)) == 1021 END | |
319 | ||
320 | #endif | |
321 | ||
7c673cae FG |
322 | BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(1, SEQ_NONE))) == 1 END |
323 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(2, SEQ)) == 41 END | |
324 | BEGIN BOOST_PP_SEQ_ELEM(50,BOOST_PP_SEQ_FIRST_N(100, SEQ_100)) == 51 END | |
325 | BEGIN BOOST_PP_SEQ_ELEM(100,BOOST_PP_SEQ_FIRST_N(255, SEQ_255)) == 101 END | |
326 | BEGIN BOOST_PP_SEQ_ELEM(200,BOOST_PP_SEQ_FIRST_N(256, SEQ_256)) == 201 END | |
327 | ||
20effc67 TL |
328 | # if BOOST_PP_LIMIT_SEQ == 512 |
329 | ||
330 | BEGIN BOOST_PP_SEQ_ELEM(7,BOOST_PP_SEQ_FIRST_N(15, SEQ_512)) == 8 END | |
331 | ||
332 | #endif | |
333 | ||
334 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
335 | ||
336 | BEGIN BOOST_PP_SEQ_ELEM(14,BOOST_PP_SEQ_FIRST_N(25, SEQ_1024)) == 15 END | |
337 | ||
338 | #endif | |
339 | ||
7c673cae FG |
340 | BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_SEQ_ELEM(0, SEQ_NONE)) == 1 END |
341 | BEGIN BOOST_PP_SEQ_SIZE(SEQ_NONE) == 1 END | |
342 | BEGIN BOOST_PP_SEQ_ELEM(2, SEQ) == 5 END | |
343 | BEGIN BOOST_PP_SEQ_ELEM(20, SEQ_255) == 21 END | |
344 | BEGIN BOOST_PP_SEQ_ELEM(254, SEQ_255) == 255 END | |
345 | BEGIN BOOST_PP_SEQ_ELEM(220, SEQ_256) == 221 END | |
346 | BEGIN BOOST_PP_SEQ_ELEM(255, SEQ_256) == 256 END | |
347 | BEGIN BOOST_PP_SEQ_SIZE(SEQ) == 4 END | |
348 | ||
20effc67 TL |
349 | # if BOOST_PP_LIMIT_SEQ == 512 |
350 | ||
351 | BEGIN BOOST_PP_SEQ_SIZE(SEQ_511) == 511 END | |
352 | BEGIN BOOST_PP_SEQ_ELEM(476, SEQ_512) == 477 END | |
353 | ||
354 | #endif | |
355 | ||
356 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
357 | ||
358 | BEGIN BOOST_PP_SEQ_SIZE(SEQ_1023) == 1023 END | |
359 | BEGIN BOOST_PP_SEQ_ELEM(934, SEQ_1024) == 935 END | |
360 | ||
361 | #endif | |
362 | ||
7c673cae FG |
363 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(CAT_S, 13, SEQ_NONE)) == 131 END |
364 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(ADD_S, 2, SEQ)) == 6374 END | |
20effc67 TL |
365 | |
366 | # if BOOST_PP_LIMIT_SEQ == 512 | |
367 | ||
368 | #define STRANS_512(s,data,elem) BOOST_PP_ADD(elem,data) | |
369 | ||
370 | BEGIN BOOST_PP_SEQ_ELEM(383, BOOST_PP_SEQ_TRANSFORM(STRANS_512,2,SEQ_512)) == 386 END | |
371 | ||
372 | #endif | |
373 | ||
374 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
375 | ||
376 | #define STRANS_1024(s,data,elem) BOOST_PP_ADD(elem,data) | |
377 | ||
378 | BEGIN BOOST_PP_SEQ_ELEM(728, BOOST_PP_SEQ_TRANSFORM(STRANS_1024,1,SEQ_1024)) == 730 END | |
379 | ||
380 | #endif | |
381 | ||
7c673cae FG |
382 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(SEQ) SEQ) == 1524152 END |
383 | ||
20effc67 TL |
384 | # if BOOST_PP_LIMIT_SEQ == 512 |
385 | ||
386 | BEGIN BOOST_PP_SEQ_ELEM(459, BOOST_PP_SEQ_TAIL(SEQ_511)) == 461 END | |
387 | ||
388 | #endif | |
389 | ||
390 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
391 | ||
392 | BEGIN BOOST_PP_SEQ_ELEM(624, BOOST_PP_SEQ_TAIL(SEQ_1023)) == 626 END | |
393 | ||
394 | #endif | |
395 | ||
7c673cae FG |
396 | # define F1(r, state, x) + x + state |
397 | # define FI2(r, state, i, x) BOOST_PP_IIF(BOOST_PP_EQUAL(i,2),+ x + x + state,+ x + state) | |
398 | BEGIN BOOST_PP_SEQ_FOR_EACH(F1, 1, SEQ) == 16 END | |
399 | BEGIN BOOST_PP_SEQ_FOR_EACH_I(FI2, 1, SEQ) == 21 END | |
400 | ||
20effc67 | 401 | # if BOOST_PP_LIMIT_SEQ == 512 && BOOST_PP_LIMIT_FOR == 512 |
7c673cae | 402 | |
20effc67 | 403 | # define FE5I2(r, state, i, x) BOOST_PP_EXPR_IIF(BOOST_PP_LESS(i,5),+ x - state) |
7c673cae | 404 | |
20effc67 | 405 | BEGIN BOOST_PP_SEQ_FOR_EACH_I(FE5I2, 1, SEQ_512) == 10 END |
7c673cae FG |
406 | |
407 | #endif | |
408 | ||
20effc67 TL |
409 | # if BOOST_PP_LIMIT_SEQ == 1024 && BOOST_PP_LIMIT_FOR == 1024 |
410 | ||
411 | # define FE1024(r, state, i, x) BOOST_PP_EXPR_IIF(BOOST_PP_LESS(i,6),+ x - state) | |
412 | ||
413 | BEGIN BOOST_PP_SEQ_FOR_EACH_I(FE1024, 2, SEQ_1024) == 9 END | |
414 | ||
415 | #endif | |
416 | ||
417 | BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_TO_TUPLE(SEQ)) == 2 END | |
418 | BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_TUPLE_ELEM(1, 0, BOOST_PP_SEQ_TO_TUPLE(SEQ_NONE))) == 1 END | |
419 | BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_SEQ_TO_TUPLE(SEQ_NONE)) == 1 END | |
7c673cae FG |
420 | BEGIN BOOST_PP_ARRAY_ELEM(3, BOOST_PP_SEQ_TO_ARRAY(SEQ)) == 2 END |
421 | ||
422 | BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_ARRAY_ELEM(0, BOOST_PP_SEQ_TO_ARRAY(SEQ_NONE))) == 1 END | |
423 | BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_SEQ_TO_ARRAY(SEQ_NONE)) == 1 END | |
424 | ||
425 | # define LESS_S(s, x, y) BOOST_PP_LESS(x, y) | |
426 | # define FILTER_MOD_S(s, data, elem) BOOST_PP_NOT(BOOST_PP_MOD(elem,data)) | |
427 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FILTER(LESS_S, 3, SEQ)) == 45 END | |
428 | BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_SEQ_FILTER(FILTER_MOD_S, 20, SEQ_100)) == 100 END | |
429 | BEGIN BOOST_PP_SEQ_ELEM(2,BOOST_PP_SEQ_FILTER(FILTER_MOD_S, 30, SEQ_100)) == 90 END | |
430 | ||
20effc67 TL |
431 | # if BOOST_PP_LIMIT_SEQ == 512 |
432 | ||
433 | # define FILTER_EQ_512_S(s, data, elem) \ | |
434 | BOOST_PP_BITOR \ | |
435 | ( \ | |
436 | BOOST_PP_EQUAL(BOOST_PP_DEC(data),elem), \ | |
437 | BOOST_PP_EQUAL(BOOST_PP_INC(data),elem) \ | |
438 | ) \ | |
439 | /* */ | |
440 | ||
441 | BEGIN BOOST_PP_SEQ_ELEM(1,BOOST_PP_SEQ_FILTER(FILTER_EQ_512_S, 20, SEQ_512)) == 21 END | |
442 | ||
443 | #endif | |
444 | ||
445 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
446 | ||
447 | # define FILTER_EQ_1024_S(s, data, elem) \ | |
448 | BOOST_PP_BITOR \ | |
449 | ( \ | |
450 | BOOST_PP_EQUAL(BOOST_PP_DEC(data),elem), \ | |
451 | BOOST_PP_EQUAL(BOOST_PP_INC(data),elem) \ | |
452 | ) \ | |
453 | /* */ | |
454 | ||
455 | BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_FILTER(FILTER_EQ_1024_S, 100, SEQ_1024)) == 99 END | |
456 | ||
457 | #endif | |
458 | ||
7c673cae FG |
459 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ_NONE, 0, 7)) == 7 END |
460 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 0, 3)) == 34152 END | |
461 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 2, 3)) == 41352 END | |
462 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 4, 3)) == 41523 END | |
463 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_255, 0, 100)) == 256 END | |
464 | BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_INSERT(SEQ_255, 0, 100)) == 255 END | |
465 | BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_INSERT(SEQ_255, 0, 113)) == 113 END | |
466 | ||
20effc67 TL |
467 | # if BOOST_PP_LIMIT_SEQ == 512 |
468 | ||
469 | BEGIN BOOST_PP_SEQ_ELEM(511,BOOST_PP_SEQ_INSERT(SEQ_511, 0, 0)) == 511 END | |
470 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_511, 510, 431)) == 512 END | |
471 | ||
472 | #endif | |
473 | ||
474 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
475 | ||
476 | BEGIN BOOST_PP_SEQ_ELEM(1023,BOOST_PP_SEQ_INSERT(SEQ_1023, 0, 0)) == 1023 END | |
477 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_INSERT(SEQ_1023, 742, 29)) == 1024 END | |
478 | ||
479 | #endif | |
480 | ||
7c673cae FG |
481 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_BACK(SEQ)) == 415 END |
482 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 255 END | |
483 | BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 255 END | |
484 | BEGIN BOOST_PP_SEQ_ELEM(100,BOOST_PP_SEQ_POP_BACK(SEQ_256)) == 101 END | |
20effc67 TL |
485 | |
486 | # if BOOST_PP_LIMIT_SEQ == 512 | |
487 | ||
488 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_512)) == 511 END | |
489 | BEGIN BOOST_PP_SEQ_ELEM(437,BOOST_PP_SEQ_POP_BACK(SEQ_511)) == 438 END | |
490 | ||
491 | #endif | |
492 | ||
493 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
494 | ||
495 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_BACK(SEQ_1024)) == 1023 END | |
496 | BEGIN BOOST_PP_SEQ_ELEM(632,BOOST_PP_SEQ_POP_BACK(SEQ_1023)) == 633 END | |
497 | ||
498 | #endif | |
499 | ||
7c673cae FG |
500 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_FRONT(SEQ)) == 152 END |
501 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 255 END | |
502 | BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 2 END | |
503 | BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_POP_FRONT(SEQ_256)) == 256 END | |
504 | ||
20effc67 TL |
505 | # if BOOST_PP_LIMIT_SEQ == 512 |
506 | ||
507 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_512)) == 511 END | |
508 | BEGIN BOOST_PP_SEQ_ELEM(347,BOOST_PP_SEQ_POP_FRONT(SEQ_512)) == 349 END | |
509 | ||
510 | #endif | |
511 | ||
512 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
513 | ||
514 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_POP_FRONT(SEQ_1024)) == 1023 END | |
515 | BEGIN BOOST_PP_SEQ_ELEM(875,BOOST_PP_SEQ_POP_FRONT(SEQ_1024)) == 877 END | |
516 | ||
517 | #endif | |
518 | ||
7c673cae FG |
519 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ_NONE, 145)) == 145 END |
520 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ, 3)) == 34152 END | |
521 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 57)) == 256 END | |
522 | BEGIN BOOST_PP_SEQ_ELEM(0,BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 222)) == 222 END | |
523 | BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_PUSH_FRONT(SEQ_255, 111)) == 255 END | |
20effc67 TL |
524 | |
525 | # if BOOST_PP_LIMIT_SEQ == 512 | |
526 | ||
527 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_511, 0)) == 512 END | |
528 | BEGIN BOOST_PP_SEQ_ELEM(391,BOOST_PP_SEQ_PUSH_FRONT(SEQ_511, 435)) == 391 END | |
529 | ||
530 | #endif | |
531 | ||
532 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
533 | ||
534 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_FRONT(SEQ_1023, 0)) == 1024 END | |
535 | BEGIN BOOST_PP_SEQ_ELEM(961,BOOST_PP_SEQ_PUSH_FRONT(SEQ_1023, 435)) == 961 END | |
536 | ||
537 | #endif | |
538 | ||
7c673cae FG |
539 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ_NONE, 79)) == 79 END |
540 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ, 3)) == 41523 END | |
541 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 199)) == 256 END | |
542 | BEGIN BOOST_PP_SEQ_ELEM(254,BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 99)) == 255 END | |
543 | BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_PUSH_BACK(SEQ_255, 99)) == 99 END | |
544 | ||
20effc67 TL |
545 | # if BOOST_PP_LIMIT_SEQ == 512 |
546 | ||
547 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 275)) == 512 END | |
548 | BEGIN BOOST_PP_SEQ_ELEM(473,BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 78)) == 474 END | |
549 | BEGIN BOOST_PP_SEQ_ELEM(511,BOOST_PP_SEQ_PUSH_BACK(SEQ_511, 78)) == 78 END | |
550 | ||
551 | #endif | |
552 | ||
553 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
554 | ||
555 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 275)) == 1024 END | |
556 | BEGIN BOOST_PP_SEQ_ELEM(846,BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 720)) == 847 END | |
557 | BEGIN BOOST_PP_SEQ_ELEM(1023,BOOST_PP_SEQ_PUSH_BACK(SEQ_1023, 311)) == 311 END | |
558 | ||
559 | #endif | |
560 | ||
7c673cae FG |
561 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 0)) == 152 END |
562 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 2)) == 412 END | |
563 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 3)) == 415 END | |
564 | ||
565 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_255, 254)) == 254 END | |
566 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_256, 255)) == 255 END | |
567 | ||
20effc67 TL |
568 | # if BOOST_PP_LIMIT_SEQ == 512 |
569 | ||
570 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_511, 429)) == 510 END | |
571 | BEGIN BOOST_PP_SEQ_ELEM(462,BOOST_PP_SEQ_REMOVE(SEQ_512, 374)) == 464 END | |
572 | ||
573 | #endif | |
574 | ||
575 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
576 | ||
577 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REMOVE(SEQ_1023, 989)) == 1022 END | |
578 | BEGIN BOOST_PP_SEQ_ELEM(731,BOOST_PP_SEQ_REMOVE(SEQ_1024, 555)) == 733 END | |
579 | ||
580 | #endif | |
581 | ||
7c673cae FG |
582 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ_NONE, 0, 22)) == 22 END |
583 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 0, 3)) == 3152 END | |
584 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 1, 3)) == 4352 END | |
585 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 3, 3)) == 4153 END | |
586 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 256 END | |
587 | BEGIN BOOST_PP_SEQ_ELEM(233,BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 234 END | |
588 | BEGIN BOOST_PP_SEQ_ELEM(255,BOOST_PP_SEQ_REPLACE(SEQ_256, 255, 22)) == 22 END | |
589 | ||
20effc67 TL |
590 | # if BOOST_PP_LIMIT_SEQ == 512 |
591 | ||
592 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_511, 509, 350)) == 511 END | |
593 | BEGIN BOOST_PP_SEQ_ELEM(482,BOOST_PP_SEQ_REPLACE(SEQ_512, 436, 33)) == 483 END | |
594 | BEGIN BOOST_PP_SEQ_ELEM(436,BOOST_PP_SEQ_REPLACE(SEQ_512, 436, 33)) == 33 END | |
595 | ||
596 | #endif | |
597 | ||
598 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
599 | ||
600 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_REPLACE(SEQ_1023, 846, 25)) == 1023 END | |
601 | BEGIN BOOST_PP_SEQ_ELEM(984,BOOST_PP_SEQ_REPLACE(SEQ_1024, 841, 670)) == 985 END | |
602 | BEGIN BOOST_PP_SEQ_ELEM(841,BOOST_PP_SEQ_REPLACE(SEQ_1024, 841, 670)) == 670 END | |
603 | ||
604 | #endif | |
605 | ||
7c673cae FG |
606 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 4)) == 4152 END |
607 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 2)) == 41 END | |
608 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 1, 2)) == 15 END | |
609 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 2, 2)) == 52 END | |
610 | ||
20effc67 TL |
611 | # if BOOST_PP_LIMIT_SEQ == 512 |
612 | ||
613 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_SUBSEQ(SEQ_511, 372, 5)) == 5 END | |
614 | BEGIN BOOST_PP_SEQ_ELEM(14,BOOST_PP_SEQ_SUBSEQ(SEQ_512, 293, 17)) == 308 END | |
615 | ||
616 | #endif | |
617 | ||
618 | # if BOOST_PP_LIMIT_SEQ == 1024 | |
619 | ||
620 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_SUBSEQ(SEQ_1023, 846, 5)) == 5 END | |
621 | BEGIN BOOST_PP_SEQ_ELEM(16,BOOST_PP_SEQ_SUBSEQ(SEQ_1024, 843, 19)) == 860 END | |
622 | ||
623 | #endif | |
624 | ||
7c673cae FG |
625 | # define F2(r, x) + BOOST_PP_SEQ_ELEM(0, x) + 2 - BOOST_PP_SEQ_ELEM(1, x) |
626 | ||
627 | #define ADD_NIL(x) x(nil) | |
628 | ||
629 | BEGIN BOOST_PP_SEQ_FOR_EACH_PRODUCT(F2, ((1)(0)) ((2)(3))) == 0 END | |
630 | ||
631 | # define L1 (0)(x) | |
632 | # define L2 (a)(1)(b)(2) | |
633 | # define L3 (c)(3)(d) | |
634 | ||
635 | # define LL (L1)(L2)(L3) | |
636 | ||
637 | #define SEQ_APPEND(s, state, elem) state elem | |
638 | BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 0x0a1b2c3d END | |
639 | BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 9 END | |
640 | ||
641 | BEGIN BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ), 2) == 5 END | |
642 | BEGIN BOOST_PP_IS_EMPTY(BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ_NONE),0)) == 1 END | |
643 | BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_SEQ_TO_LIST(SEQ_NONE)) == 1 END | |
644 | ||
20effc67 TL |
645 | # if BOOST_PP_VARIADIC_HAS_OPT() |
646 | ||
647 | BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_SEQ_ENUM(SEQ_NONE)) == 0 END | |
648 | ||
649 | # else | |
7c673cae FG |
650 | |
651 | BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_SEQ_ENUM(SEQ_NONE)) == 1 END | |
20effc67 TL |
652 | |
653 | # endif | |
654 | ||
7c673cae FG |
655 | BEGIN BOOST_PP_VARIADIC_ELEM(0,BOOST_PP_SEQ_ENUM(SEQ)) == 4 END |
656 | BEGIN BOOST_PP_TUPLE_ELEM(2,BOOST_PP_SEQ_ELEM(0,BOOST_PP_VARIADIC_SEQ_TO_SEQ(SEQVAR))) == 8 END |