PageRenderTime 30ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp

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