vector30.hpp 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124
  1. // Copyright Aleksey Gurtovoy 2000-2004
  2. //
  3. // Distributed under the Boost Software License, Version 1.0.
  4. // (See accompanying file LICENSE_1_0.txt or copy at
  5. // http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // Preprocessed version of "boost/mpl/vector/vector30.hpp" header
  8. // -- DO NOT modify by hand!
  9. namespace boost { namespace mpl {
  10. template<
  11. typename T0, typename T1, typename T2, typename T3, typename T4
  12. , typename T5, typename T6, typename T7, typename T8, typename T9
  13. , typename T10, typename T11, typename T12, typename T13, typename T14
  14. , typename T15, typename T16, typename T17, typename T18, typename T19
  15. , typename T20
  16. >
  17. struct vector21
  18. {
  19. typedef aux::vector_tag<21> tag;
  20. typedef vector21 type;
  21. typedef T0 item0;
  22. typedef T1 item1;
  23. typedef T2 item2;
  24. typedef T3 item3;
  25. typedef T4 item4;
  26. typedef T5 item5;
  27. typedef T6 item6;
  28. typedef T7 item7;
  29. typedef T8 item8;
  30. typedef T9 item9;
  31. typedef T10 item10;
  32. typedef T11 item11;
  33. typedef T12 item12;
  34. typedef T13 item13;
  35. typedef T14 item14;
  36. typedef T15 item15;
  37. typedef T16 item16;
  38. typedef T17 item17;
  39. typedef T18 item18;
  40. typedef T19 item19;
  41. typedef T20 item20;
  42. typedef void_ item21;
  43. typedef T20 back;
  44. typedef v_iter< type,0 > begin;
  45. typedef v_iter< type,21 > end;
  46. };
  47. template<>
  48. struct push_front_impl< aux::vector_tag<20> >
  49. {
  50. template< typename Vector, typename T > struct apply
  51. {
  52. typedef vector21<
  53. T
  54. ,
  55. typename Vector::item0, typename Vector::item1
  56. , typename Vector::item2, typename Vector::item3
  57. , typename Vector::item4, typename Vector::item5
  58. , typename Vector::item6, typename Vector::item7
  59. , typename Vector::item8, typename Vector::item9
  60. , typename Vector::item10, typename Vector::item11
  61. , typename Vector::item12, typename Vector::item13
  62. , typename Vector::item14, typename Vector::item15
  63. , typename Vector::item16, typename Vector::item17
  64. , typename Vector::item18, typename Vector::item19
  65. > type;
  66. };
  67. };
  68. template<>
  69. struct pop_front_impl< aux::vector_tag<21> >
  70. {
  71. template< typename Vector > struct apply
  72. {
  73. typedef vector20<
  74. typename Vector::item1, typename Vector::item2
  75. , typename Vector::item3, typename Vector::item4
  76. , typename Vector::item5, typename Vector::item6
  77. , typename Vector::item7, typename Vector::item8
  78. , typename Vector::item9, typename Vector::item10
  79. , typename Vector::item11, typename Vector::item12
  80. , typename Vector::item13, typename Vector::item14
  81. , typename Vector::item15, typename Vector::item16
  82. , typename Vector::item17, typename Vector::item18
  83. , typename Vector::item19, typename Vector::item20
  84. > type;
  85. };
  86. };
  87. template<>
  88. struct push_back_impl< aux::vector_tag<20> >
  89. {
  90. template< typename Vector, typename T > struct apply
  91. {
  92. typedef vector21<
  93. typename Vector::item0, typename Vector::item1
  94. , typename Vector::item2, typename Vector::item3
  95. , typename Vector::item4, typename Vector::item5
  96. , typename Vector::item6, typename Vector::item7
  97. , typename Vector::item8, typename Vector::item9
  98. , typename Vector::item10, typename Vector::item11
  99. , typename Vector::item12, typename Vector::item13
  100. , typename Vector::item14, typename Vector::item15
  101. , typename Vector::item16, typename Vector::item17
  102. , typename Vector::item18, typename Vector::item19
  103. ,
  104. T
  105. > type;
  106. };
  107. };
  108. template<>
  109. struct pop_back_impl< aux::vector_tag<21> >
  110. {
  111. template< typename Vector > struct apply
  112. {
  113. typedef vector20<
  114. typename Vector::item0, typename Vector::item1
  115. , typename Vector::item2, typename Vector::item3
  116. , typename Vector::item4, typename Vector::item5
  117. , typename Vector::item6, typename Vector::item7
  118. , typename Vector::item8, typename Vector::item9
  119. , typename Vector::item10, typename Vector::item11
  120. , typename Vector::item12, typename Vector::item13
  121. , typename Vector::item14, typename Vector::item15
  122. , typename Vector::item16, typename Vector::item17
  123. , typename Vector::item18, typename Vector::item19
  124. > type;
  125. };
  126. };
  127. namespace aux {
  128. template<> struct v_at_impl<21>
  129. {
  130. template< typename V_ > struct result_
  131. {
  132. typedef typename V_::item21 type;
  133. };
  134. };
  135. }
  136. template<>
  137. struct at_impl< aux::vector_tag<21> >
  138. {
  139. template< typename V_, typename N > struct apply
  140. {
  141. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  142. ::template result_<V_>::type type;
  143. };
  144. };
  145. template<>
  146. struct front_impl< aux::vector_tag<21> >
  147. {
  148. template< typename Vector > struct apply
  149. {
  150. typedef typename Vector::item0 type;
  151. };
  152. };
  153. template<>
  154. struct back_impl< aux::vector_tag<21> >
  155. {
  156. template< typename Vector > struct apply
  157. {
  158. typedef typename Vector::back type;
  159. };
  160. };
  161. template<>
  162. struct empty_impl< aux::vector_tag<21> >
  163. {
  164. template< typename Vector > struct apply
  165. : false_
  166. {
  167. };
  168. };
  169. template<>
  170. struct size_impl< aux::vector_tag<21> >
  171. {
  172. template< typename Vector > struct apply
  173. : long_<21>
  174. {
  175. };
  176. };
  177. template<>
  178. struct O1_size_impl< aux::vector_tag<21> >
  179. : size_impl< aux::vector_tag<21> >
  180. {
  181. };
  182. template<>
  183. struct clear_impl< aux::vector_tag<21> >
  184. {
  185. template< typename Vector > struct apply
  186. {
  187. typedef vector0<> type;
  188. };
  189. };
  190. template<
  191. typename T0, typename T1, typename T2, typename T3, typename T4
  192. , typename T5, typename T6, typename T7, typename T8, typename T9
  193. , typename T10, typename T11, typename T12, typename T13, typename T14
  194. , typename T15, typename T16, typename T17, typename T18, typename T19
  195. , typename T20, typename T21
  196. >
  197. struct vector22
  198. {
  199. typedef aux::vector_tag<22> tag;
  200. typedef vector22 type;
  201. typedef T0 item0;
  202. typedef T1 item1;
  203. typedef T2 item2;
  204. typedef T3 item3;
  205. typedef T4 item4;
  206. typedef T5 item5;
  207. typedef T6 item6;
  208. typedef T7 item7;
  209. typedef T8 item8;
  210. typedef T9 item9;
  211. typedef T10 item10;
  212. typedef T11 item11;
  213. typedef T12 item12;
  214. typedef T13 item13;
  215. typedef T14 item14;
  216. typedef T15 item15;
  217. typedef T16 item16;
  218. typedef T17 item17;
  219. typedef T18 item18;
  220. typedef T19 item19;
  221. typedef T20 item20;
  222. typedef T21 item21;
  223. typedef void_ item22;
  224. typedef T21 back;
  225. typedef v_iter< type,0 > begin;
  226. typedef v_iter< type,22 > end;
  227. };
  228. template<>
  229. struct push_front_impl< aux::vector_tag<21> >
  230. {
  231. template< typename Vector, typename T > struct apply
  232. {
  233. typedef vector22<
  234. T
  235. ,
  236. typename Vector::item0, typename Vector::item1
  237. , typename Vector::item2, typename Vector::item3
  238. , typename Vector::item4, typename Vector::item5
  239. , typename Vector::item6, typename Vector::item7
  240. , typename Vector::item8, typename Vector::item9
  241. , typename Vector::item10, typename Vector::item11
  242. , typename Vector::item12, typename Vector::item13
  243. , typename Vector::item14, typename Vector::item15
  244. , typename Vector::item16, typename Vector::item17
  245. , typename Vector::item18, typename Vector::item19
  246. , typename Vector::item20
  247. > type;
  248. };
  249. };
  250. template<>
  251. struct pop_front_impl< aux::vector_tag<22> >
  252. {
  253. template< typename Vector > struct apply
  254. {
  255. typedef vector21<
  256. typename Vector::item1, typename Vector::item2
  257. , typename Vector::item3, typename Vector::item4
  258. , typename Vector::item5, typename Vector::item6
  259. , typename Vector::item7, typename Vector::item8
  260. , typename Vector::item9, typename Vector::item10
  261. , typename Vector::item11, typename Vector::item12
  262. , typename Vector::item13, typename Vector::item14
  263. , typename Vector::item15, typename Vector::item16
  264. , typename Vector::item17, typename Vector::item18
  265. , typename Vector::item19, typename Vector::item20
  266. , typename Vector::item21
  267. > type;
  268. };
  269. };
  270. template<>
  271. struct push_back_impl< aux::vector_tag<21> >
  272. {
  273. template< typename Vector, typename T > struct apply
  274. {
  275. typedef vector22<
  276. typename Vector::item0, typename Vector::item1
  277. , typename Vector::item2, typename Vector::item3
  278. , typename Vector::item4, typename Vector::item5
  279. , typename Vector::item6, typename Vector::item7
  280. , typename Vector::item8, typename Vector::item9
  281. , typename Vector::item10, typename Vector::item11
  282. , typename Vector::item12, typename Vector::item13
  283. , typename Vector::item14, typename Vector::item15
  284. , typename Vector::item16, typename Vector::item17
  285. , typename Vector::item18, typename Vector::item19
  286. , typename Vector::item20
  287. ,
  288. T
  289. > type;
  290. };
  291. };
  292. template<>
  293. struct pop_back_impl< aux::vector_tag<22> >
  294. {
  295. template< typename Vector > struct apply
  296. {
  297. typedef vector21<
  298. typename Vector::item0, typename Vector::item1
  299. , typename Vector::item2, typename Vector::item3
  300. , typename Vector::item4, typename Vector::item5
  301. , typename Vector::item6, typename Vector::item7
  302. , typename Vector::item8, typename Vector::item9
  303. , typename Vector::item10, typename Vector::item11
  304. , typename Vector::item12, typename Vector::item13
  305. , typename Vector::item14, typename Vector::item15
  306. , typename Vector::item16, typename Vector::item17
  307. , typename Vector::item18, typename Vector::item19
  308. , typename Vector::item20
  309. > type;
  310. };
  311. };
  312. namespace aux {
  313. template<> struct v_at_impl<22>
  314. {
  315. template< typename V_ > struct result_
  316. {
  317. typedef typename V_::item22 type;
  318. };
  319. };
  320. }
  321. template<>
  322. struct at_impl< aux::vector_tag<22> >
  323. {
  324. template< typename V_, typename N > struct apply
  325. {
  326. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  327. ::template result_<V_>::type type;
  328. };
  329. };
  330. template<>
  331. struct front_impl< aux::vector_tag<22> >
  332. {
  333. template< typename Vector > struct apply
  334. {
  335. typedef typename Vector::item0 type;
  336. };
  337. };
  338. template<>
  339. struct back_impl< aux::vector_tag<22> >
  340. {
  341. template< typename Vector > struct apply
  342. {
  343. typedef typename Vector::back type;
  344. };
  345. };
  346. template<>
  347. struct empty_impl< aux::vector_tag<22> >
  348. {
  349. template< typename Vector > struct apply
  350. : false_
  351. {
  352. };
  353. };
  354. template<>
  355. struct size_impl< aux::vector_tag<22> >
  356. {
  357. template< typename Vector > struct apply
  358. : long_<22>
  359. {
  360. };
  361. };
  362. template<>
  363. struct O1_size_impl< aux::vector_tag<22> >
  364. : size_impl< aux::vector_tag<22> >
  365. {
  366. };
  367. template<>
  368. struct clear_impl< aux::vector_tag<22> >
  369. {
  370. template< typename Vector > struct apply
  371. {
  372. typedef vector0<> type;
  373. };
  374. };
  375. template<
  376. typename T0, typename T1, typename T2, typename T3, typename T4
  377. , typename T5, typename T6, typename T7, typename T8, typename T9
  378. , typename T10, typename T11, typename T12, typename T13, typename T14
  379. , typename T15, typename T16, typename T17, typename T18, typename T19
  380. , typename T20, typename T21, typename T22
  381. >
  382. struct vector23
  383. {
  384. typedef aux::vector_tag<23> tag;
  385. typedef vector23 type;
  386. typedef T0 item0;
  387. typedef T1 item1;
  388. typedef T2 item2;
  389. typedef T3 item3;
  390. typedef T4 item4;
  391. typedef T5 item5;
  392. typedef T6 item6;
  393. typedef T7 item7;
  394. typedef T8 item8;
  395. typedef T9 item9;
  396. typedef T10 item10;
  397. typedef T11 item11;
  398. typedef T12 item12;
  399. typedef T13 item13;
  400. typedef T14 item14;
  401. typedef T15 item15;
  402. typedef T16 item16;
  403. typedef T17 item17;
  404. typedef T18 item18;
  405. typedef T19 item19;
  406. typedef T20 item20;
  407. typedef T21 item21;
  408. typedef T22 item22;
  409. typedef void_ item23;
  410. typedef T22 back;
  411. typedef v_iter< type,0 > begin;
  412. typedef v_iter< type,23 > end;
  413. };
  414. template<>
  415. struct push_front_impl< aux::vector_tag<22> >
  416. {
  417. template< typename Vector, typename T > struct apply
  418. {
  419. typedef vector23<
  420. T
  421. ,
  422. typename Vector::item0, typename Vector::item1
  423. , typename Vector::item2, typename Vector::item3
  424. , typename Vector::item4, typename Vector::item5
  425. , typename Vector::item6, typename Vector::item7
  426. , typename Vector::item8, typename Vector::item9
  427. , typename Vector::item10, typename Vector::item11
  428. , typename Vector::item12, typename Vector::item13
  429. , typename Vector::item14, typename Vector::item15
  430. , typename Vector::item16, typename Vector::item17
  431. , typename Vector::item18, typename Vector::item19
  432. , typename Vector::item20, typename Vector::item21
  433. > type;
  434. };
  435. };
  436. template<>
  437. struct pop_front_impl< aux::vector_tag<23> >
  438. {
  439. template< typename Vector > struct apply
  440. {
  441. typedef vector22<
  442. typename Vector::item1, typename Vector::item2
  443. , typename Vector::item3, typename Vector::item4
  444. , typename Vector::item5, typename Vector::item6
  445. , typename Vector::item7, typename Vector::item8
  446. , typename Vector::item9, typename Vector::item10
  447. , typename Vector::item11, typename Vector::item12
  448. , typename Vector::item13, typename Vector::item14
  449. , typename Vector::item15, typename Vector::item16
  450. , typename Vector::item17, typename Vector::item18
  451. , typename Vector::item19, typename Vector::item20
  452. , typename Vector::item21, typename Vector::item22
  453. > type;
  454. };
  455. };
  456. template<>
  457. struct push_back_impl< aux::vector_tag<22> >
  458. {
  459. template< typename Vector, typename T > struct apply
  460. {
  461. typedef vector23<
  462. typename Vector::item0, typename Vector::item1
  463. , typename Vector::item2, typename Vector::item3
  464. , typename Vector::item4, typename Vector::item5
  465. , typename Vector::item6, typename Vector::item7
  466. , typename Vector::item8, typename Vector::item9
  467. , typename Vector::item10, typename Vector::item11
  468. , typename Vector::item12, typename Vector::item13
  469. , typename Vector::item14, typename Vector::item15
  470. , typename Vector::item16, typename Vector::item17
  471. , typename Vector::item18, typename Vector::item19
  472. , typename Vector::item20, typename Vector::item21
  473. ,
  474. T
  475. > type;
  476. };
  477. };
  478. template<>
  479. struct pop_back_impl< aux::vector_tag<23> >
  480. {
  481. template< typename Vector > struct apply
  482. {
  483. typedef vector22<
  484. typename Vector::item0, typename Vector::item1
  485. , typename Vector::item2, typename Vector::item3
  486. , typename Vector::item4, typename Vector::item5
  487. , typename Vector::item6, typename Vector::item7
  488. , typename Vector::item8, typename Vector::item9
  489. , typename Vector::item10, typename Vector::item11
  490. , typename Vector::item12, typename Vector::item13
  491. , typename Vector::item14, typename Vector::item15
  492. , typename Vector::item16, typename Vector::item17
  493. , typename Vector::item18, typename Vector::item19
  494. , typename Vector::item20, typename Vector::item21
  495. > type;
  496. };
  497. };
  498. namespace aux {
  499. template<> struct v_at_impl<23>
  500. {
  501. template< typename V_ > struct result_
  502. {
  503. typedef typename V_::item23 type;
  504. };
  505. };
  506. }
  507. template<>
  508. struct at_impl< aux::vector_tag<23> >
  509. {
  510. template< typename V_, typename N > struct apply
  511. {
  512. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  513. ::template result_<V_>::type type;
  514. };
  515. };
  516. template<>
  517. struct front_impl< aux::vector_tag<23> >
  518. {
  519. template< typename Vector > struct apply
  520. {
  521. typedef typename Vector::item0 type;
  522. };
  523. };
  524. template<>
  525. struct back_impl< aux::vector_tag<23> >
  526. {
  527. template< typename Vector > struct apply
  528. {
  529. typedef typename Vector::back type;
  530. };
  531. };
  532. template<>
  533. struct empty_impl< aux::vector_tag<23> >
  534. {
  535. template< typename Vector > struct apply
  536. : false_
  537. {
  538. };
  539. };
  540. template<>
  541. struct size_impl< aux::vector_tag<23> >
  542. {
  543. template< typename Vector > struct apply
  544. : long_<23>
  545. {
  546. };
  547. };
  548. template<>
  549. struct O1_size_impl< aux::vector_tag<23> >
  550. : size_impl< aux::vector_tag<23> >
  551. {
  552. };
  553. template<>
  554. struct clear_impl< aux::vector_tag<23> >
  555. {
  556. template< typename Vector > struct apply
  557. {
  558. typedef vector0<> type;
  559. };
  560. };
  561. template<
  562. typename T0, typename T1, typename T2, typename T3, typename T4
  563. , typename T5, typename T6, typename T7, typename T8, typename T9
  564. , typename T10, typename T11, typename T12, typename T13, typename T14
  565. , typename T15, typename T16, typename T17, typename T18, typename T19
  566. , typename T20, typename T21, typename T22, typename T23
  567. >
  568. struct vector24
  569. {
  570. typedef aux::vector_tag<24> tag;
  571. typedef vector24 type;
  572. typedef T0 item0;
  573. typedef T1 item1;
  574. typedef T2 item2;
  575. typedef T3 item3;
  576. typedef T4 item4;
  577. typedef T5 item5;
  578. typedef T6 item6;
  579. typedef T7 item7;
  580. typedef T8 item8;
  581. typedef T9 item9;
  582. typedef T10 item10;
  583. typedef T11 item11;
  584. typedef T12 item12;
  585. typedef T13 item13;
  586. typedef T14 item14;
  587. typedef T15 item15;
  588. typedef T16 item16;
  589. typedef T17 item17;
  590. typedef T18 item18;
  591. typedef T19 item19;
  592. typedef T20 item20;
  593. typedef T21 item21;
  594. typedef T22 item22;
  595. typedef T23 item23;
  596. typedef void_ item24;
  597. typedef T23 back;
  598. typedef v_iter< type,0 > begin;
  599. typedef v_iter< type,24 > end;
  600. };
  601. template<>
  602. struct push_front_impl< aux::vector_tag<23> >
  603. {
  604. template< typename Vector, typename T > struct apply
  605. {
  606. typedef vector24<
  607. T
  608. ,
  609. typename Vector::item0, typename Vector::item1
  610. , typename Vector::item2, typename Vector::item3
  611. , typename Vector::item4, typename Vector::item5
  612. , typename Vector::item6, typename Vector::item7
  613. , typename Vector::item8, typename Vector::item9
  614. , typename Vector::item10, typename Vector::item11
  615. , typename Vector::item12, typename Vector::item13
  616. , typename Vector::item14, typename Vector::item15
  617. , typename Vector::item16, typename Vector::item17
  618. , typename Vector::item18, typename Vector::item19
  619. , typename Vector::item20, typename Vector::item21
  620. , typename Vector::item22
  621. > type;
  622. };
  623. };
  624. template<>
  625. struct pop_front_impl< aux::vector_tag<24> >
  626. {
  627. template< typename Vector > struct apply
  628. {
  629. typedef vector23<
  630. typename Vector::item1, typename Vector::item2
  631. , typename Vector::item3, typename Vector::item4
  632. , typename Vector::item5, typename Vector::item6
  633. , typename Vector::item7, typename Vector::item8
  634. , typename Vector::item9, typename Vector::item10
  635. , typename Vector::item11, typename Vector::item12
  636. , typename Vector::item13, typename Vector::item14
  637. , typename Vector::item15, typename Vector::item16
  638. , typename Vector::item17, typename Vector::item18
  639. , typename Vector::item19, typename Vector::item20
  640. , typename Vector::item21, typename Vector::item22
  641. , typename Vector::item23
  642. > type;
  643. };
  644. };
  645. template<>
  646. struct push_back_impl< aux::vector_tag<23> >
  647. {
  648. template< typename Vector, typename T > struct apply
  649. {
  650. typedef vector24<
  651. typename Vector::item0, typename Vector::item1
  652. , typename Vector::item2, typename Vector::item3
  653. , typename Vector::item4, typename Vector::item5
  654. , typename Vector::item6, typename Vector::item7
  655. , typename Vector::item8, typename Vector::item9
  656. , typename Vector::item10, typename Vector::item11
  657. , typename Vector::item12, typename Vector::item13
  658. , typename Vector::item14, typename Vector::item15
  659. , typename Vector::item16, typename Vector::item17
  660. , typename Vector::item18, typename Vector::item19
  661. , typename Vector::item20, typename Vector::item21
  662. , typename Vector::item22
  663. ,
  664. T
  665. > type;
  666. };
  667. };
  668. template<>
  669. struct pop_back_impl< aux::vector_tag<24> >
  670. {
  671. template< typename Vector > struct apply
  672. {
  673. typedef vector23<
  674. typename Vector::item0, typename Vector::item1
  675. , typename Vector::item2, typename Vector::item3
  676. , typename Vector::item4, typename Vector::item5
  677. , typename Vector::item6, typename Vector::item7
  678. , typename Vector::item8, typename Vector::item9
  679. , typename Vector::item10, typename Vector::item11
  680. , typename Vector::item12, typename Vector::item13
  681. , typename Vector::item14, typename Vector::item15
  682. , typename Vector::item16, typename Vector::item17
  683. , typename Vector::item18, typename Vector::item19
  684. , typename Vector::item20, typename Vector::item21
  685. , typename Vector::item22
  686. > type;
  687. };
  688. };
  689. namespace aux {
  690. template<> struct v_at_impl<24>
  691. {
  692. template< typename V_ > struct result_
  693. {
  694. typedef typename V_::item24 type;
  695. };
  696. };
  697. }
  698. template<>
  699. struct at_impl< aux::vector_tag<24> >
  700. {
  701. template< typename V_, typename N > struct apply
  702. {
  703. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  704. ::template result_<V_>::type type;
  705. };
  706. };
  707. template<>
  708. struct front_impl< aux::vector_tag<24> >
  709. {
  710. template< typename Vector > struct apply
  711. {
  712. typedef typename Vector::item0 type;
  713. };
  714. };
  715. template<>
  716. struct back_impl< aux::vector_tag<24> >
  717. {
  718. template< typename Vector > struct apply
  719. {
  720. typedef typename Vector::back type;
  721. };
  722. };
  723. template<>
  724. struct empty_impl< aux::vector_tag<24> >
  725. {
  726. template< typename Vector > struct apply
  727. : false_
  728. {
  729. };
  730. };
  731. template<>
  732. struct size_impl< aux::vector_tag<24> >
  733. {
  734. template< typename Vector > struct apply
  735. : long_<24>
  736. {
  737. };
  738. };
  739. template<>
  740. struct O1_size_impl< aux::vector_tag<24> >
  741. : size_impl< aux::vector_tag<24> >
  742. {
  743. };
  744. template<>
  745. struct clear_impl< aux::vector_tag<24> >
  746. {
  747. template< typename Vector > struct apply
  748. {
  749. typedef vector0<> type;
  750. };
  751. };
  752. template<
  753. typename T0, typename T1, typename T2, typename T3, typename T4
  754. , typename T5, typename T6, typename T7, typename T8, typename T9
  755. , typename T10, typename T11, typename T12, typename T13, typename T14
  756. , typename T15, typename T16, typename T17, typename T18, typename T19
  757. , typename T20, typename T21, typename T22, typename T23, typename T24
  758. >
  759. struct vector25
  760. {
  761. typedef aux::vector_tag<25> tag;
  762. typedef vector25 type;
  763. typedef T0 item0;
  764. typedef T1 item1;
  765. typedef T2 item2;
  766. typedef T3 item3;
  767. typedef T4 item4;
  768. typedef T5 item5;
  769. typedef T6 item6;
  770. typedef T7 item7;
  771. typedef T8 item8;
  772. typedef T9 item9;
  773. typedef T10 item10;
  774. typedef T11 item11;
  775. typedef T12 item12;
  776. typedef T13 item13;
  777. typedef T14 item14;
  778. typedef T15 item15;
  779. typedef T16 item16;
  780. typedef T17 item17;
  781. typedef T18 item18;
  782. typedef T19 item19;
  783. typedef T20 item20;
  784. typedef T21 item21;
  785. typedef T22 item22;
  786. typedef T23 item23;
  787. typedef T24 item24;
  788. typedef void_ item25;
  789. typedef T24 back;
  790. typedef v_iter< type,0 > begin;
  791. typedef v_iter< type,25 > end;
  792. };
  793. template<>
  794. struct push_front_impl< aux::vector_tag<24> >
  795. {
  796. template< typename Vector, typename T > struct apply
  797. {
  798. typedef vector25<
  799. T
  800. ,
  801. typename Vector::item0, typename Vector::item1
  802. , typename Vector::item2, typename Vector::item3
  803. , typename Vector::item4, typename Vector::item5
  804. , typename Vector::item6, typename Vector::item7
  805. , typename Vector::item8, typename Vector::item9
  806. , typename Vector::item10, typename Vector::item11
  807. , typename Vector::item12, typename Vector::item13
  808. , typename Vector::item14, typename Vector::item15
  809. , typename Vector::item16, typename Vector::item17
  810. , typename Vector::item18, typename Vector::item19
  811. , typename Vector::item20, typename Vector::item21
  812. , typename Vector::item22, typename Vector::item23
  813. > type;
  814. };
  815. };
  816. template<>
  817. struct pop_front_impl< aux::vector_tag<25> >
  818. {
  819. template< typename Vector > struct apply
  820. {
  821. typedef vector24<
  822. typename Vector::item1, typename Vector::item2
  823. , typename Vector::item3, typename Vector::item4
  824. , typename Vector::item5, typename Vector::item6
  825. , typename Vector::item7, typename Vector::item8
  826. , typename Vector::item9, typename Vector::item10
  827. , typename Vector::item11, typename Vector::item12
  828. , typename Vector::item13, typename Vector::item14
  829. , typename Vector::item15, typename Vector::item16
  830. , typename Vector::item17, typename Vector::item18
  831. , typename Vector::item19, typename Vector::item20
  832. , typename Vector::item21, typename Vector::item22
  833. , typename Vector::item23, typename Vector::item24
  834. > type;
  835. };
  836. };
  837. template<>
  838. struct push_back_impl< aux::vector_tag<24> >
  839. {
  840. template< typename Vector, typename T > struct apply
  841. {
  842. typedef vector25<
  843. typename Vector::item0, typename Vector::item1
  844. , typename Vector::item2, typename Vector::item3
  845. , typename Vector::item4, typename Vector::item5
  846. , typename Vector::item6, typename Vector::item7
  847. , typename Vector::item8, typename Vector::item9
  848. , typename Vector::item10, typename Vector::item11
  849. , typename Vector::item12, typename Vector::item13
  850. , typename Vector::item14, typename Vector::item15
  851. , typename Vector::item16, typename Vector::item17
  852. , typename Vector::item18, typename Vector::item19
  853. , typename Vector::item20, typename Vector::item21
  854. , typename Vector::item22, typename Vector::item23
  855. ,
  856. T
  857. > type;
  858. };
  859. };
  860. template<>
  861. struct pop_back_impl< aux::vector_tag<25> >
  862. {
  863. template< typename Vector > struct apply
  864. {
  865. typedef vector24<
  866. typename Vector::item0, typename Vector::item1
  867. , typename Vector::item2, typename Vector::item3
  868. , typename Vector::item4, typename Vector::item5
  869. , typename Vector::item6, typename Vector::item7
  870. , typename Vector::item8, typename Vector::item9
  871. , typename Vector::item10, typename Vector::item11
  872. , typename Vector::item12, typename Vector::item13
  873. , typename Vector::item14, typename Vector::item15
  874. , typename Vector::item16, typename Vector::item17
  875. , typename Vector::item18, typename Vector::item19
  876. , typename Vector::item20, typename Vector::item21
  877. , typename Vector::item22, typename Vector::item23
  878. > type;
  879. };
  880. };
  881. namespace aux {
  882. template<> struct v_at_impl<25>
  883. {
  884. template< typename V_ > struct result_
  885. {
  886. typedef typename V_::item25 type;
  887. };
  888. };
  889. }
  890. template<>
  891. struct at_impl< aux::vector_tag<25> >
  892. {
  893. template< typename V_, typename N > struct apply
  894. {
  895. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  896. ::template result_<V_>::type type;
  897. };
  898. };
  899. template<>
  900. struct front_impl< aux::vector_tag<25> >
  901. {
  902. template< typename Vector > struct apply
  903. {
  904. typedef typename Vector::item0 type;
  905. };
  906. };
  907. template<>
  908. struct back_impl< aux::vector_tag<25> >
  909. {
  910. template< typename Vector > struct apply
  911. {
  912. typedef typename Vector::back type;
  913. };
  914. };
  915. template<>
  916. struct empty_impl< aux::vector_tag<25> >
  917. {
  918. template< typename Vector > struct apply
  919. : false_
  920. {
  921. };
  922. };
  923. template<>
  924. struct size_impl< aux::vector_tag<25> >
  925. {
  926. template< typename Vector > struct apply
  927. : long_<25>
  928. {
  929. };
  930. };
  931. template<>
  932. struct O1_size_impl< aux::vector_tag<25> >
  933. : size_impl< aux::vector_tag<25> >
  934. {
  935. };
  936. template<>
  937. struct clear_impl< aux::vector_tag<25> >
  938. {
  939. template< typename Vector > struct apply
  940. {
  941. typedef vector0<> type;
  942. };
  943. };
  944. template<
  945. typename T0, typename T1, typename T2, typename T3, typename T4
  946. , typename T5, typename T6, typename T7, typename T8, typename T9
  947. , typename T10, typename T11, typename T12, typename T13, typename T14
  948. , typename T15, typename T16, typename T17, typename T18, typename T19
  949. , typename T20, typename T21, typename T22, typename T23, typename T24
  950. , typename T25
  951. >
  952. struct vector26
  953. {
  954. typedef aux::vector_tag<26> tag;
  955. typedef vector26 type;
  956. typedef T0 item0;
  957. typedef T1 item1;
  958. typedef T2 item2;
  959. typedef T3 item3;
  960. typedef T4 item4;
  961. typedef T5 item5;
  962. typedef T6 item6;
  963. typedef T7 item7;
  964. typedef T8 item8;
  965. typedef T9 item9;
  966. typedef T10 item10;
  967. typedef T11 item11;
  968. typedef T12 item12;
  969. typedef T13 item13;
  970. typedef T14 item14;
  971. typedef T15 item15;
  972. typedef T16 item16;
  973. typedef T17 item17;
  974. typedef T18 item18;
  975. typedef T19 item19;
  976. typedef T20 item20;
  977. typedef T21 item21;
  978. typedef T22 item22;
  979. typedef T23 item23;
  980. typedef T24 item24;
  981. typedef T25 item25;
  982. typedef void_ item26;
  983. typedef T25 back;
  984. typedef v_iter< type,0 > begin;
  985. typedef v_iter< type,26 > end;
  986. };
  987. template<>
  988. struct push_front_impl< aux::vector_tag<25> >
  989. {
  990. template< typename Vector, typename T > struct apply
  991. {
  992. typedef vector26<
  993. T
  994. ,
  995. typename Vector::item0, typename Vector::item1
  996. , typename Vector::item2, typename Vector::item3
  997. , typename Vector::item4, typename Vector::item5
  998. , typename Vector::item6, typename Vector::item7
  999. , typename Vector::item8, typename Vector::item9
  1000. , typename Vector::item10, typename Vector::item11
  1001. , typename Vector::item12, typename Vector::item13
  1002. , typename Vector::item14, typename Vector::item15
  1003. , typename Vector::item16, typename Vector::item17
  1004. , typename Vector::item18, typename Vector::item19
  1005. , typename Vector::item20, typename Vector::item21
  1006. , typename Vector::item22, typename Vector::item23
  1007. , typename Vector::item24
  1008. > type;
  1009. };
  1010. };
  1011. template<>
  1012. struct pop_front_impl< aux::vector_tag<26> >
  1013. {
  1014. template< typename Vector > struct apply
  1015. {
  1016. typedef vector25<
  1017. typename Vector::item1, typename Vector::item2
  1018. , typename Vector::item3, typename Vector::item4
  1019. , typename Vector::item5, typename Vector::item6
  1020. , typename Vector::item7, typename Vector::item8
  1021. , typename Vector::item9, typename Vector::item10
  1022. , typename Vector::item11, typename Vector::item12
  1023. , typename Vector::item13, typename Vector::item14
  1024. , typename Vector::item15, typename Vector::item16
  1025. , typename Vector::item17, typename Vector::item18
  1026. , typename Vector::item19, typename Vector::item20
  1027. , typename Vector::item21, typename Vector::item22
  1028. , typename Vector::item23, typename Vector::item24
  1029. , typename Vector::item25
  1030. > type;
  1031. };
  1032. };
  1033. template<>
  1034. struct push_back_impl< aux::vector_tag<25> >
  1035. {
  1036. template< typename Vector, typename T > struct apply
  1037. {
  1038. typedef vector26<
  1039. typename Vector::item0, typename Vector::item1
  1040. , typename Vector::item2, typename Vector::item3
  1041. , typename Vector::item4, typename Vector::item5
  1042. , typename Vector::item6, typename Vector::item7
  1043. , typename Vector::item8, typename Vector::item9
  1044. , typename Vector::item10, typename Vector::item11
  1045. , typename Vector::item12, typename Vector::item13
  1046. , typename Vector::item14, typename Vector::item15
  1047. , typename Vector::item16, typename Vector::item17
  1048. , typename Vector::item18, typename Vector::item19
  1049. , typename Vector::item20, typename Vector::item21
  1050. , typename Vector::item22, typename Vector::item23
  1051. , typename Vector::item24
  1052. ,
  1053. T
  1054. > type;
  1055. };
  1056. };
  1057. template<>
  1058. struct pop_back_impl< aux::vector_tag<26> >
  1059. {
  1060. template< typename Vector > struct apply
  1061. {
  1062. typedef vector25<
  1063. typename Vector::item0, typename Vector::item1
  1064. , typename Vector::item2, typename Vector::item3
  1065. , typename Vector::item4, typename Vector::item5
  1066. , typename Vector::item6, typename Vector::item7
  1067. , typename Vector::item8, typename Vector::item9
  1068. , typename Vector::item10, typename Vector::item11
  1069. , typename Vector::item12, typename Vector::item13
  1070. , typename Vector::item14, typename Vector::item15
  1071. , typename Vector::item16, typename Vector::item17
  1072. , typename Vector::item18, typename Vector::item19
  1073. , typename Vector::item20, typename Vector::item21
  1074. , typename Vector::item22, typename Vector::item23
  1075. , typename Vector::item24
  1076. > type;
  1077. };
  1078. };
  1079. namespace aux {
  1080. template<> struct v_at_impl<26>
  1081. {
  1082. template< typename V_ > struct result_
  1083. {
  1084. typedef typename V_::item26 type;
  1085. };
  1086. };
  1087. }
  1088. template<>
  1089. struct at_impl< aux::vector_tag<26> >
  1090. {
  1091. template< typename V_, typename N > struct apply
  1092. {
  1093. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  1094. ::template result_<V_>::type type;
  1095. };
  1096. };
  1097. template<>
  1098. struct front_impl< aux::vector_tag<26> >
  1099. {
  1100. template< typename Vector > struct apply
  1101. {
  1102. typedef typename Vector::item0 type;
  1103. };
  1104. };
  1105. template<>
  1106. struct back_impl< aux::vector_tag<26> >
  1107. {
  1108. template< typename Vector > struct apply
  1109. {
  1110. typedef typename Vector::back type;
  1111. };
  1112. };
  1113. template<>
  1114. struct empty_impl< aux::vector_tag<26> >
  1115. {
  1116. template< typename Vector > struct apply
  1117. : false_
  1118. {
  1119. };
  1120. };
  1121. template<>
  1122. struct size_impl< aux::vector_tag<26> >
  1123. {
  1124. template< typename Vector > struct apply
  1125. : long_<26>
  1126. {
  1127. };
  1128. };
  1129. template<>
  1130. struct O1_size_impl< aux::vector_tag<26> >
  1131. : size_impl< aux::vector_tag<26> >
  1132. {
  1133. };
  1134. template<>
  1135. struct clear_impl< aux::vector_tag<26> >
  1136. {
  1137. template< typename Vector > struct apply
  1138. {
  1139. typedef vector0<> type;
  1140. };
  1141. };
  1142. template<
  1143. typename T0, typename T1, typename T2, typename T3, typename T4
  1144. , typename T5, typename T6, typename T7, typename T8, typename T9
  1145. , typename T10, typename T11, typename T12, typename T13, typename T14
  1146. , typename T15, typename T16, typename T17, typename T18, typename T19
  1147. , typename T20, typename T21, typename T22, typename T23, typename T24
  1148. , typename T25, typename T26
  1149. >
  1150. struct vector27
  1151. {
  1152. typedef aux::vector_tag<27> tag;
  1153. typedef vector27 type;
  1154. typedef T0 item0;
  1155. typedef T1 item1;
  1156. typedef T2 item2;
  1157. typedef T3 item3;
  1158. typedef T4 item4;
  1159. typedef T5 item5;
  1160. typedef T6 item6;
  1161. typedef T7 item7;
  1162. typedef T8 item8;
  1163. typedef T9 item9;
  1164. typedef T10 item10;
  1165. typedef T11 item11;
  1166. typedef T12 item12;
  1167. typedef T13 item13;
  1168. typedef T14 item14;
  1169. typedef T15 item15;
  1170. typedef T16 item16;
  1171. typedef T17 item17;
  1172. typedef T18 item18;
  1173. typedef T19 item19;
  1174. typedef T20 item20;
  1175. typedef T21 item21;
  1176. typedef T22 item22;
  1177. typedef T23 item23;
  1178. typedef T24 item24;
  1179. typedef T25 item25;
  1180. typedef T26 item26;
  1181. typedef void_ item27;
  1182. typedef T26 back;
  1183. typedef v_iter< type,0 > begin;
  1184. typedef v_iter< type,27 > end;
  1185. };
  1186. template<>
  1187. struct push_front_impl< aux::vector_tag<26> >
  1188. {
  1189. template< typename Vector, typename T > struct apply
  1190. {
  1191. typedef vector27<
  1192. T
  1193. ,
  1194. typename Vector::item0, typename Vector::item1
  1195. , typename Vector::item2, typename Vector::item3
  1196. , typename Vector::item4, typename Vector::item5
  1197. , typename Vector::item6, typename Vector::item7
  1198. , typename Vector::item8, typename Vector::item9
  1199. , typename Vector::item10, typename Vector::item11
  1200. , typename Vector::item12, typename Vector::item13
  1201. , typename Vector::item14, typename Vector::item15
  1202. , typename Vector::item16, typename Vector::item17
  1203. , typename Vector::item18, typename Vector::item19
  1204. , typename Vector::item20, typename Vector::item21
  1205. , typename Vector::item22, typename Vector::item23
  1206. , typename Vector::item24, typename Vector::item25
  1207. > type;
  1208. };
  1209. };
  1210. template<>
  1211. struct pop_front_impl< aux::vector_tag<27> >
  1212. {
  1213. template< typename Vector > struct apply
  1214. {
  1215. typedef vector26<
  1216. typename Vector::item1, typename Vector::item2
  1217. , typename Vector::item3, typename Vector::item4
  1218. , typename Vector::item5, typename Vector::item6
  1219. , typename Vector::item7, typename Vector::item8
  1220. , typename Vector::item9, typename Vector::item10
  1221. , typename Vector::item11, typename Vector::item12
  1222. , typename Vector::item13, typename Vector::item14
  1223. , typename Vector::item15, typename Vector::item16
  1224. , typename Vector::item17, typename Vector::item18
  1225. , typename Vector::item19, typename Vector::item20
  1226. , typename Vector::item21, typename Vector::item22
  1227. , typename Vector::item23, typename Vector::item24
  1228. , typename Vector::item25, typename Vector::item26
  1229. > type;
  1230. };
  1231. };
  1232. template<>
  1233. struct push_back_impl< aux::vector_tag<26> >
  1234. {
  1235. template< typename Vector, typename T > struct apply
  1236. {
  1237. typedef vector27<
  1238. typename Vector::item0, typename Vector::item1
  1239. , typename Vector::item2, typename Vector::item3
  1240. , typename Vector::item4, typename Vector::item5
  1241. , typename Vector::item6, typename Vector::item7
  1242. , typename Vector::item8, typename Vector::item9
  1243. , typename Vector::item10, typename Vector::item11
  1244. , typename Vector::item12, typename Vector::item13
  1245. , typename Vector::item14, typename Vector::item15
  1246. , typename Vector::item16, typename Vector::item17
  1247. , typename Vector::item18, typename Vector::item19
  1248. , typename Vector::item20, typename Vector::item21
  1249. , typename Vector::item22, typename Vector::item23
  1250. , typename Vector::item24, typename Vector::item25
  1251. ,
  1252. T
  1253. > type;
  1254. };
  1255. };
  1256. template<>
  1257. struct pop_back_impl< aux::vector_tag<27> >
  1258. {
  1259. template< typename Vector > struct apply
  1260. {
  1261. typedef vector26<
  1262. typename Vector::item0, typename Vector::item1
  1263. , typename Vector::item2, typename Vector::item3
  1264. , typename Vector::item4, typename Vector::item5
  1265. , typename Vector::item6, typename Vector::item7
  1266. , typename Vector::item8, typename Vector::item9
  1267. , typename Vector::item10, typename Vector::item11
  1268. , typename Vector::item12, typename Vector::item13
  1269. , typename Vector::item14, typename Vector::item15
  1270. , typename Vector::item16, typename Vector::item17
  1271. , typename Vector::item18, typename Vector::item19
  1272. , typename Vector::item20, typename Vector::item21
  1273. , typename Vector::item22, typename Vector::item23
  1274. , typename Vector::item24, typename Vector::item25
  1275. > type;
  1276. };
  1277. };
  1278. namespace aux {
  1279. template<> struct v_at_impl<27>
  1280. {
  1281. template< typename V_ > struct result_
  1282. {
  1283. typedef typename V_::item27 type;
  1284. };
  1285. };
  1286. }
  1287. template<>
  1288. struct at_impl< aux::vector_tag<27> >
  1289. {
  1290. template< typename V_, typename N > struct apply
  1291. {
  1292. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  1293. ::template result_<V_>::type type;
  1294. };
  1295. };
  1296. template<>
  1297. struct front_impl< aux::vector_tag<27> >
  1298. {
  1299. template< typename Vector > struct apply
  1300. {
  1301. typedef typename Vector::item0 type;
  1302. };
  1303. };
  1304. template<>
  1305. struct back_impl< aux::vector_tag<27> >
  1306. {
  1307. template< typename Vector > struct apply
  1308. {
  1309. typedef typename Vector::back type;
  1310. };
  1311. };
  1312. template<>
  1313. struct empty_impl< aux::vector_tag<27> >
  1314. {
  1315. template< typename Vector > struct apply
  1316. : false_
  1317. {
  1318. };
  1319. };
  1320. template<>
  1321. struct size_impl< aux::vector_tag<27> >
  1322. {
  1323. template< typename Vector > struct apply
  1324. : long_<27>
  1325. {
  1326. };
  1327. };
  1328. template<>
  1329. struct O1_size_impl< aux::vector_tag<27> >
  1330. : size_impl< aux::vector_tag<27> >
  1331. {
  1332. };
  1333. template<>
  1334. struct clear_impl< aux::vector_tag<27> >
  1335. {
  1336. template< typename Vector > struct apply
  1337. {
  1338. typedef vector0<> type;
  1339. };
  1340. };
  1341. template<
  1342. typename T0, typename T1, typename T2, typename T3, typename T4
  1343. , typename T5, typename T6, typename T7, typename T8, typename T9
  1344. , typename T10, typename T11, typename T12, typename T13, typename T14
  1345. , typename T15, typename T16, typename T17, typename T18, typename T19
  1346. , typename T20, typename T21, typename T22, typename T23, typename T24
  1347. , typename T25, typename T26, typename T27
  1348. >
  1349. struct vector28
  1350. {
  1351. typedef aux::vector_tag<28> tag;
  1352. typedef vector28 type;
  1353. typedef T0 item0;
  1354. typedef T1 item1;
  1355. typedef T2 item2;
  1356. typedef T3 item3;
  1357. typedef T4 item4;
  1358. typedef T5 item5;
  1359. typedef T6 item6;
  1360. typedef T7 item7;
  1361. typedef T8 item8;
  1362. typedef T9 item9;
  1363. typedef T10 item10;
  1364. typedef T11 item11;
  1365. typedef T12 item12;
  1366. typedef T13 item13;
  1367. typedef T14 item14;
  1368. typedef T15 item15;
  1369. typedef T16 item16;
  1370. typedef T17 item17;
  1371. typedef T18 item18;
  1372. typedef T19 item19;
  1373. typedef T20 item20;
  1374. typedef T21 item21;
  1375. typedef T22 item22;
  1376. typedef T23 item23;
  1377. typedef T24 item24;
  1378. typedef T25 item25;
  1379. typedef T26 item26;
  1380. typedef T27 item27;
  1381. typedef void_ item28;
  1382. typedef T27 back;
  1383. typedef v_iter< type,0 > begin;
  1384. typedef v_iter< type,28 > end;
  1385. };
  1386. template<>
  1387. struct push_front_impl< aux::vector_tag<27> >
  1388. {
  1389. template< typename Vector, typename T > struct apply
  1390. {
  1391. typedef vector28<
  1392. T
  1393. ,
  1394. typename Vector::item0, typename Vector::item1
  1395. , typename Vector::item2, typename Vector::item3
  1396. , typename Vector::item4, typename Vector::item5
  1397. , typename Vector::item6, typename Vector::item7
  1398. , typename Vector::item8, typename Vector::item9
  1399. , typename Vector::item10, typename Vector::item11
  1400. , typename Vector::item12, typename Vector::item13
  1401. , typename Vector::item14, typename Vector::item15
  1402. , typename Vector::item16, typename Vector::item17
  1403. , typename Vector::item18, typename Vector::item19
  1404. , typename Vector::item20, typename Vector::item21
  1405. , typename Vector::item22, typename Vector::item23
  1406. , typename Vector::item24, typename Vector::item25
  1407. , typename Vector::item26
  1408. > type;
  1409. };
  1410. };
  1411. template<>
  1412. struct pop_front_impl< aux::vector_tag<28> >
  1413. {
  1414. template< typename Vector > struct apply
  1415. {
  1416. typedef vector27<
  1417. typename Vector::item1, typename Vector::item2
  1418. , typename Vector::item3, typename Vector::item4
  1419. , typename Vector::item5, typename Vector::item6
  1420. , typename Vector::item7, typename Vector::item8
  1421. , typename Vector::item9, typename Vector::item10
  1422. , typename Vector::item11, typename Vector::item12
  1423. , typename Vector::item13, typename Vector::item14
  1424. , typename Vector::item15, typename Vector::item16
  1425. , typename Vector::item17, typename Vector::item18
  1426. , typename Vector::item19, typename Vector::item20
  1427. , typename Vector::item21, typename Vector::item22
  1428. , typename Vector::item23, typename Vector::item24
  1429. , typename Vector::item25, typename Vector::item26
  1430. , typename Vector::item27
  1431. > type;
  1432. };
  1433. };
  1434. template<>
  1435. struct push_back_impl< aux::vector_tag<27> >
  1436. {
  1437. template< typename Vector, typename T > struct apply
  1438. {
  1439. typedef vector28<
  1440. typename Vector::item0, typename Vector::item1
  1441. , typename Vector::item2, typename Vector::item3
  1442. , typename Vector::item4, typename Vector::item5
  1443. , typename Vector::item6, typename Vector::item7
  1444. , typename Vector::item8, typename Vector::item9
  1445. , typename Vector::item10, typename Vector::item11
  1446. , typename Vector::item12, typename Vector::item13
  1447. , typename Vector::item14, typename Vector::item15
  1448. , typename Vector::item16, typename Vector::item17
  1449. , typename Vector::item18, typename Vector::item19
  1450. , typename Vector::item20, typename Vector::item21
  1451. , typename Vector::item22, typename Vector::item23
  1452. , typename Vector::item24, typename Vector::item25
  1453. , typename Vector::item26
  1454. ,
  1455. T
  1456. > type;
  1457. };
  1458. };
  1459. template<>
  1460. struct pop_back_impl< aux::vector_tag<28> >
  1461. {
  1462. template< typename Vector > struct apply
  1463. {
  1464. typedef vector27<
  1465. typename Vector::item0, typename Vector::item1
  1466. , typename Vector::item2, typename Vector::item3
  1467. , typename Vector::item4, typename Vector::item5
  1468. , typename Vector::item6, typename Vector::item7
  1469. , typename Vector::item8, typename Vector::item9
  1470. , typename Vector::item10, typename Vector::item11
  1471. , typename Vector::item12, typename Vector::item13
  1472. , typename Vector::item14, typename Vector::item15
  1473. , typename Vector::item16, typename Vector::item17
  1474. , typename Vector::item18, typename Vector::item19
  1475. , typename Vector::item20, typename Vector::item21
  1476. , typename Vector::item22, typename Vector::item23
  1477. , typename Vector::item24, typename Vector::item25
  1478. , typename Vector::item26
  1479. > type;
  1480. };
  1481. };
  1482. namespace aux {
  1483. template<> struct v_at_impl<28>
  1484. {
  1485. template< typename V_ > struct result_
  1486. {
  1487. typedef typename V_::item28 type;
  1488. };
  1489. };
  1490. }
  1491. template<>
  1492. struct at_impl< aux::vector_tag<28> >
  1493. {
  1494. template< typename V_, typename N > struct apply
  1495. {
  1496. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  1497. ::template result_<V_>::type type;
  1498. };
  1499. };
  1500. template<>
  1501. struct front_impl< aux::vector_tag<28> >
  1502. {
  1503. template< typename Vector > struct apply
  1504. {
  1505. typedef typename Vector::item0 type;
  1506. };
  1507. };
  1508. template<>
  1509. struct back_impl< aux::vector_tag<28> >
  1510. {
  1511. template< typename Vector > struct apply
  1512. {
  1513. typedef typename Vector::back type;
  1514. };
  1515. };
  1516. template<>
  1517. struct empty_impl< aux::vector_tag<28> >
  1518. {
  1519. template< typename Vector > struct apply
  1520. : false_
  1521. {
  1522. };
  1523. };
  1524. template<>
  1525. struct size_impl< aux::vector_tag<28> >
  1526. {
  1527. template< typename Vector > struct apply
  1528. : long_<28>
  1529. {
  1530. };
  1531. };
  1532. template<>
  1533. struct O1_size_impl< aux::vector_tag<28> >
  1534. : size_impl< aux::vector_tag<28> >
  1535. {
  1536. };
  1537. template<>
  1538. struct clear_impl< aux::vector_tag<28> >
  1539. {
  1540. template< typename Vector > struct apply
  1541. {
  1542. typedef vector0<> type;
  1543. };
  1544. };
  1545. template<
  1546. typename T0, typename T1, typename T2, typename T3, typename T4
  1547. , typename T5, typename T6, typename T7, typename T8, typename T9
  1548. , typename T10, typename T11, typename T12, typename T13, typename T14
  1549. , typename T15, typename T16, typename T17, typename T18, typename T19
  1550. , typename T20, typename T21, typename T22, typename T23, typename T24
  1551. , typename T25, typename T26, typename T27, typename T28
  1552. >
  1553. struct vector29
  1554. {
  1555. typedef aux::vector_tag<29> tag;
  1556. typedef vector29 type;
  1557. typedef T0 item0;
  1558. typedef T1 item1;
  1559. typedef T2 item2;
  1560. typedef T3 item3;
  1561. typedef T4 item4;
  1562. typedef T5 item5;
  1563. typedef T6 item6;
  1564. typedef T7 item7;
  1565. typedef T8 item8;
  1566. typedef T9 item9;
  1567. typedef T10 item10;
  1568. typedef T11 item11;
  1569. typedef T12 item12;
  1570. typedef T13 item13;
  1571. typedef T14 item14;
  1572. typedef T15 item15;
  1573. typedef T16 item16;
  1574. typedef T17 item17;
  1575. typedef T18 item18;
  1576. typedef T19 item19;
  1577. typedef T20 item20;
  1578. typedef T21 item21;
  1579. typedef T22 item22;
  1580. typedef T23 item23;
  1581. typedef T24 item24;
  1582. typedef T25 item25;
  1583. typedef T26 item26;
  1584. typedef T27 item27;
  1585. typedef T28 item28;
  1586. typedef void_ item29;
  1587. typedef T28 back;
  1588. typedef v_iter< type,0 > begin;
  1589. typedef v_iter< type,29 > end;
  1590. };
  1591. template<>
  1592. struct push_front_impl< aux::vector_tag<28> >
  1593. {
  1594. template< typename Vector, typename T > struct apply
  1595. {
  1596. typedef vector29<
  1597. T
  1598. ,
  1599. typename Vector::item0, typename Vector::item1
  1600. , typename Vector::item2, typename Vector::item3
  1601. , typename Vector::item4, typename Vector::item5
  1602. , typename Vector::item6, typename Vector::item7
  1603. , typename Vector::item8, typename Vector::item9
  1604. , typename Vector::item10, typename Vector::item11
  1605. , typename Vector::item12, typename Vector::item13
  1606. , typename Vector::item14, typename Vector::item15
  1607. , typename Vector::item16, typename Vector::item17
  1608. , typename Vector::item18, typename Vector::item19
  1609. , typename Vector::item20, typename Vector::item21
  1610. , typename Vector::item22, typename Vector::item23
  1611. , typename Vector::item24, typename Vector::item25
  1612. , typename Vector::item26, typename Vector::item27
  1613. > type;
  1614. };
  1615. };
  1616. template<>
  1617. struct pop_front_impl< aux::vector_tag<29> >
  1618. {
  1619. template< typename Vector > struct apply
  1620. {
  1621. typedef vector28<
  1622. typename Vector::item1, typename Vector::item2
  1623. , typename Vector::item3, typename Vector::item4
  1624. , typename Vector::item5, typename Vector::item6
  1625. , typename Vector::item7, typename Vector::item8
  1626. , typename Vector::item9, typename Vector::item10
  1627. , typename Vector::item11, typename Vector::item12
  1628. , typename Vector::item13, typename Vector::item14
  1629. , typename Vector::item15, typename Vector::item16
  1630. , typename Vector::item17, typename Vector::item18
  1631. , typename Vector::item19, typename Vector::item20
  1632. , typename Vector::item21, typename Vector::item22
  1633. , typename Vector::item23, typename Vector::item24
  1634. , typename Vector::item25, typename Vector::item26
  1635. , typename Vector::item27, typename Vector::item28
  1636. > type;
  1637. };
  1638. };
  1639. template<>
  1640. struct push_back_impl< aux::vector_tag<28> >
  1641. {
  1642. template< typename Vector, typename T > struct apply
  1643. {
  1644. typedef vector29<
  1645. typename Vector::item0, typename Vector::item1
  1646. , typename Vector::item2, typename Vector::item3
  1647. , typename Vector::item4, typename Vector::item5
  1648. , typename Vector::item6, typename Vector::item7
  1649. , typename Vector::item8, typename Vector::item9
  1650. , typename Vector::item10, typename Vector::item11
  1651. , typename Vector::item12, typename Vector::item13
  1652. , typename Vector::item14, typename Vector::item15
  1653. , typename Vector::item16, typename Vector::item17
  1654. , typename Vector::item18, typename Vector::item19
  1655. , typename Vector::item20, typename Vector::item21
  1656. , typename Vector::item22, typename Vector::item23
  1657. , typename Vector::item24, typename Vector::item25
  1658. , typename Vector::item26, typename Vector::item27
  1659. ,
  1660. T
  1661. > type;
  1662. };
  1663. };
  1664. template<>
  1665. struct pop_back_impl< aux::vector_tag<29> >
  1666. {
  1667. template< typename Vector > struct apply
  1668. {
  1669. typedef vector28<
  1670. typename Vector::item0, typename Vector::item1
  1671. , typename Vector::item2, typename Vector::item3
  1672. , typename Vector::item4, typename Vector::item5
  1673. , typename Vector::item6, typename Vector::item7
  1674. , typename Vector::item8, typename Vector::item9
  1675. , typename Vector::item10, typename Vector::item11
  1676. , typename Vector::item12, typename Vector::item13
  1677. , typename Vector::item14, typename Vector::item15
  1678. , typename Vector::item16, typename Vector::item17
  1679. , typename Vector::item18, typename Vector::item19
  1680. , typename Vector::item20, typename Vector::item21
  1681. , typename Vector::item22, typename Vector::item23
  1682. , typename Vector::item24, typename Vector::item25
  1683. , typename Vector::item26, typename Vector::item27
  1684. > type;
  1685. };
  1686. };
  1687. namespace aux {
  1688. template<> struct v_at_impl<29>
  1689. {
  1690. template< typename V_ > struct result_
  1691. {
  1692. typedef typename V_::item29 type;
  1693. };
  1694. };
  1695. }
  1696. template<>
  1697. struct at_impl< aux::vector_tag<29> >
  1698. {
  1699. template< typename V_, typename N > struct apply
  1700. {
  1701. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  1702. ::template result_<V_>::type type;
  1703. };
  1704. };
  1705. template<>
  1706. struct front_impl< aux::vector_tag<29> >
  1707. {
  1708. template< typename Vector > struct apply
  1709. {
  1710. typedef typename Vector::item0 type;
  1711. };
  1712. };
  1713. template<>
  1714. struct back_impl< aux::vector_tag<29> >
  1715. {
  1716. template< typename Vector > struct apply
  1717. {
  1718. typedef typename Vector::back type;
  1719. };
  1720. };
  1721. template<>
  1722. struct empty_impl< aux::vector_tag<29> >
  1723. {
  1724. template< typename Vector > struct apply
  1725. : false_
  1726. {
  1727. };
  1728. };
  1729. template<>
  1730. struct size_impl< aux::vector_tag<29> >
  1731. {
  1732. template< typename Vector > struct apply
  1733. : long_<29>
  1734. {
  1735. };
  1736. };
  1737. template<>
  1738. struct O1_size_impl< aux::vector_tag<29> >
  1739. : size_impl< aux::vector_tag<29> >
  1740. {
  1741. };
  1742. template<>
  1743. struct clear_impl< aux::vector_tag<29> >
  1744. {
  1745. template< typename Vector > struct apply
  1746. {
  1747. typedef vector0<> type;
  1748. };
  1749. };
  1750. template<
  1751. typename T0, typename T1, typename T2, typename T3, typename T4
  1752. , typename T5, typename T6, typename T7, typename T8, typename T9
  1753. , typename T10, typename T11, typename T12, typename T13, typename T14
  1754. , typename T15, typename T16, typename T17, typename T18, typename T19
  1755. , typename T20, typename T21, typename T22, typename T23, typename T24
  1756. , typename T25, typename T26, typename T27, typename T28, typename T29
  1757. >
  1758. struct vector30
  1759. {
  1760. typedef aux::vector_tag<30> tag;
  1761. typedef vector30 type;
  1762. typedef T0 item0;
  1763. typedef T1 item1;
  1764. typedef T2 item2;
  1765. typedef T3 item3;
  1766. typedef T4 item4;
  1767. typedef T5 item5;
  1768. typedef T6 item6;
  1769. typedef T7 item7;
  1770. typedef T8 item8;
  1771. typedef T9 item9;
  1772. typedef T10 item10;
  1773. typedef T11 item11;
  1774. typedef T12 item12;
  1775. typedef T13 item13;
  1776. typedef T14 item14;
  1777. typedef T15 item15;
  1778. typedef T16 item16;
  1779. typedef T17 item17;
  1780. typedef T18 item18;
  1781. typedef T19 item19;
  1782. typedef T20 item20;
  1783. typedef T21 item21;
  1784. typedef T22 item22;
  1785. typedef T23 item23;
  1786. typedef T24 item24;
  1787. typedef T25 item25;
  1788. typedef T26 item26;
  1789. typedef T27 item27;
  1790. typedef T28 item28;
  1791. typedef T29 item29;
  1792. typedef void_ item30;
  1793. typedef T29 back;
  1794. typedef v_iter< type,0 > begin;
  1795. typedef v_iter< type,30 > end;
  1796. };
  1797. template<>
  1798. struct push_front_impl< aux::vector_tag<29> >
  1799. {
  1800. template< typename Vector, typename T > struct apply
  1801. {
  1802. typedef vector30<
  1803. T
  1804. ,
  1805. typename Vector::item0, typename Vector::item1
  1806. , typename Vector::item2, typename Vector::item3
  1807. , typename Vector::item4, typename Vector::item5
  1808. , typename Vector::item6, typename Vector::item7
  1809. , typename Vector::item8, typename Vector::item9
  1810. , typename Vector::item10, typename Vector::item11
  1811. , typename Vector::item12, typename Vector::item13
  1812. , typename Vector::item14, typename Vector::item15
  1813. , typename Vector::item16, typename Vector::item17
  1814. , typename Vector::item18, typename Vector::item19
  1815. , typename Vector::item20, typename Vector::item21
  1816. , typename Vector::item22, typename Vector::item23
  1817. , typename Vector::item24, typename Vector::item25
  1818. , typename Vector::item26, typename Vector::item27
  1819. , typename Vector::item28
  1820. > type;
  1821. };
  1822. };
  1823. template<>
  1824. struct pop_front_impl< aux::vector_tag<30> >
  1825. {
  1826. template< typename Vector > struct apply
  1827. {
  1828. typedef vector29<
  1829. typename Vector::item1, typename Vector::item2
  1830. , typename Vector::item3, typename Vector::item4
  1831. , typename Vector::item5, typename Vector::item6
  1832. , typename Vector::item7, typename Vector::item8
  1833. , typename Vector::item9, typename Vector::item10
  1834. , typename Vector::item11, typename Vector::item12
  1835. , typename Vector::item13, typename Vector::item14
  1836. , typename Vector::item15, typename Vector::item16
  1837. , typename Vector::item17, typename Vector::item18
  1838. , typename Vector::item19, typename Vector::item20
  1839. , typename Vector::item21, typename Vector::item22
  1840. , typename Vector::item23, typename Vector::item24
  1841. , typename Vector::item25, typename Vector::item26
  1842. , typename Vector::item27, typename Vector::item28
  1843. , typename Vector::item29
  1844. > type;
  1845. };
  1846. };
  1847. template<>
  1848. struct push_back_impl< aux::vector_tag<29> >
  1849. {
  1850. template< typename Vector, typename T > struct apply
  1851. {
  1852. typedef vector30<
  1853. typename Vector::item0, typename Vector::item1
  1854. , typename Vector::item2, typename Vector::item3
  1855. , typename Vector::item4, typename Vector::item5
  1856. , typename Vector::item6, typename Vector::item7
  1857. , typename Vector::item8, typename Vector::item9
  1858. , typename Vector::item10, typename Vector::item11
  1859. , typename Vector::item12, typename Vector::item13
  1860. , typename Vector::item14, typename Vector::item15
  1861. , typename Vector::item16, typename Vector::item17
  1862. , typename Vector::item18, typename Vector::item19
  1863. , typename Vector::item20, typename Vector::item21
  1864. , typename Vector::item22, typename Vector::item23
  1865. , typename Vector::item24, typename Vector::item25
  1866. , typename Vector::item26, typename Vector::item27
  1867. , typename Vector::item28
  1868. ,
  1869. T
  1870. > type;
  1871. };
  1872. };
  1873. template<>
  1874. struct pop_back_impl< aux::vector_tag<30> >
  1875. {
  1876. template< typename Vector > struct apply
  1877. {
  1878. typedef vector29<
  1879. typename Vector::item0, typename Vector::item1
  1880. , typename Vector::item2, typename Vector::item3
  1881. , typename Vector::item4, typename Vector::item5
  1882. , typename Vector::item6, typename Vector::item7
  1883. , typename Vector::item8, typename Vector::item9
  1884. , typename Vector::item10, typename Vector::item11
  1885. , typename Vector::item12, typename Vector::item13
  1886. , typename Vector::item14, typename Vector::item15
  1887. , typename Vector::item16, typename Vector::item17
  1888. , typename Vector::item18, typename Vector::item19
  1889. , typename Vector::item20, typename Vector::item21
  1890. , typename Vector::item22, typename Vector::item23
  1891. , typename Vector::item24, typename Vector::item25
  1892. , typename Vector::item26, typename Vector::item27
  1893. , typename Vector::item28
  1894. > type;
  1895. };
  1896. };
  1897. namespace aux {
  1898. template<> struct v_at_impl<30>
  1899. {
  1900. template< typename V_ > struct result_
  1901. {
  1902. typedef typename V_::item30 type;
  1903. };
  1904. };
  1905. }
  1906. template<>
  1907. struct at_impl< aux::vector_tag<30> >
  1908. {
  1909. template< typename V_, typename N > struct apply
  1910. {
  1911. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  1912. ::template result_<V_>::type type;
  1913. };
  1914. };
  1915. template<>
  1916. struct front_impl< aux::vector_tag<30> >
  1917. {
  1918. template< typename Vector > struct apply
  1919. {
  1920. typedef typename Vector::item0 type;
  1921. };
  1922. };
  1923. template<>
  1924. struct back_impl< aux::vector_tag<30> >
  1925. {
  1926. template< typename Vector > struct apply
  1927. {
  1928. typedef typename Vector::back type;
  1929. };
  1930. };
  1931. template<>
  1932. struct empty_impl< aux::vector_tag<30> >
  1933. {
  1934. template< typename Vector > struct apply
  1935. : false_
  1936. {
  1937. };
  1938. };
  1939. template<>
  1940. struct size_impl< aux::vector_tag<30> >
  1941. {
  1942. template< typename Vector > struct apply
  1943. : long_<30>
  1944. {
  1945. };
  1946. };
  1947. template<>
  1948. struct O1_size_impl< aux::vector_tag<30> >
  1949. : size_impl< aux::vector_tag<30> >
  1950. {
  1951. };
  1952. template<>
  1953. struct clear_impl< aux::vector_tag<30> >
  1954. {
  1955. template< typename Vector > struct apply
  1956. {
  1957. typedef vector0<> type;
  1958. };
  1959. };
  1960. }}