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

http://hadesmem.googlecode.com/ · C++ Header · 2444 lines · 2272 code · 164 blank · 8 comment · 0 complexity · f68778b33cd8d0e1b1e84369089fc601 MD5 · raw file

Large files are truncated click here to view the full file

  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. namespace aux {
  160. template<> struct v_at_impl<31>
  161. {
  162. template< typename V_ > struct result_
  163. {
  164. typedef typename V_::item31 type;
  165. };
  166. };
  167. }
  168. template<>
  169. struct at_impl< aux::vector_tag<31> >
  170. {
  171. template< typename V_, typename N > struct apply
  172. {
  173. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  174. ::template result_<V_>::type type;
  175. };
  176. };
  177. template<>
  178. struct front_impl< aux::vector_tag<31> >
  179. {
  180. template< typename Vector > struct apply
  181. {
  182. typedef typename Vector::item0 type;
  183. };
  184. };
  185. template<>
  186. struct back_impl< aux::vector_tag<31> >
  187. {
  188. template< typename Vector > struct apply
  189. {
  190. typedef typename Vector::back type;
  191. };
  192. };
  193. template<>
  194. struct empty_impl< aux::vector_tag<31> >
  195. {
  196. template< typename Vector > struct apply
  197. : false_
  198. {
  199. };
  200. };
  201. template<>
  202. struct size_impl< aux::vector_tag<31> >
  203. {
  204. template< typename Vector > struct apply
  205. : long_<31>
  206. {
  207. };
  208. };
  209. template<>
  210. struct O1_size_impl< aux::vector_tag<31> >
  211. : size_impl< aux::vector_tag<31> >
  212. {
  213. };
  214. template<>
  215. struct clear_impl< aux::vector_tag<31> >
  216. {
  217. template< typename Vector > struct apply
  218. {
  219. typedef vector0<> type;
  220. };
  221. };
  222. template<
  223. typename T0, typename T1, typename T2, typename T3, typename T4
  224. , typename T5, typename T6, typename T7, typename T8, typename T9
  225. , typename T10, typename T11, typename T12, typename T13, typename T14
  226. , typename T15, typename T16, typename T17, typename T18, typename T19
  227. , typename T20, typename T21, typename T22, typename T23, typename T24
  228. , typename T25, typename T26, typename T27, typename T28, typename T29
  229. , typename T30, typename T31
  230. >
  231. struct vector32
  232. {
  233. typedef aux::vector_tag<32> tag;
  234. typedef vector32 type;
  235. typedef T0 item0;
  236. typedef T1 item1;
  237. typedef T2 item2;
  238. typedef T3 item3;
  239. typedef T4 item4;
  240. typedef T5 item5;
  241. typedef T6 item6;
  242. typedef T7 item7;
  243. typedef T8 item8;
  244. typedef T9 item9;
  245. typedef T10 item10;
  246. typedef T11 item11;
  247. typedef T12 item12;
  248. typedef T13 item13;
  249. typedef T14 item14;
  250. typedef T15 item15;
  251. typedef T16 item16;
  252. typedef T17 item17;
  253. typedef T18 item18;
  254. typedef T19 item19;
  255. typedef T20 item20;
  256. typedef T21 item21;
  257. typedef T22 item22;
  258. typedef T23 item23;
  259. typedef T24 item24;
  260. typedef T25 item25;
  261. typedef T26 item26;
  262. typedef T27 item27;
  263. typedef T28 item28;
  264. typedef T29 item29;
  265. typedef T30 item30;
  266. typedef T31 item31;
  267. typedef void_ item32;
  268. typedef T31 back;
  269. typedef v_iter< type,0 > begin;
  270. typedef v_iter< type,32 > end;
  271. };
  272. template<>
  273. struct push_front_impl< aux::vector_tag<31> >
  274. {
  275. template< typename Vector, typename T > struct apply
  276. {
  277. typedef vector32<
  278. T
  279. ,
  280. typename Vector::item0, typename Vector::item1
  281. , typename Vector::item2, typename Vector::item3
  282. , typename Vector::item4, typename Vector::item5
  283. , typename Vector::item6, typename Vector::item7
  284. , typename Vector::item8, typename Vector::item9
  285. , typename Vector::item10, typename Vector::item11
  286. , typename Vector::item12, typename Vector::item13
  287. , typename Vector::item14, typename Vector::item15
  288. , typename Vector::item16, typename Vector::item17
  289. , typename Vector::item18, typename Vector::item19
  290. , typename Vector::item20, typename Vector::item21
  291. , typename Vector::item22, typename Vector::item23
  292. , typename Vector::item24, typename Vector::item25
  293. , typename Vector::item26, typename Vector::item27
  294. , typename Vector::item28, typename Vector::item29
  295. , typename Vector::item30
  296. > type;
  297. };
  298. };
  299. template<>
  300. struct pop_front_impl< aux::vector_tag<32> >
  301. {
  302. template< typename Vector > struct apply
  303. {
  304. typedef vector31<
  305. typename Vector::item1, typename Vector::item2
  306. , typename Vector::item3, typename Vector::item4
  307. , typename Vector::item5, typename Vector::item6
  308. , typename Vector::item7, typename Vector::item8
  309. , typename Vector::item9, typename Vector::item10
  310. , typename Vector::item11, typename Vector::item12
  311. , typename Vector::item13, typename Vector::item14
  312. , typename Vector::item15, typename Vector::item16
  313. , typename Vector::item17, typename Vector::item18
  314. , typename Vector::item19, typename Vector::item20
  315. , typename Vector::item21, typename Vector::item22
  316. , typename Vector::item23, typename Vector::item24
  317. , typename Vector::item25, typename Vector::item26
  318. , typename Vector::item27, typename Vector::item28
  319. , typename Vector::item29, typename Vector::item30
  320. , typename Vector::item31
  321. > type;
  322. };
  323. };
  324. template<>
  325. struct push_back_impl< aux::vector_tag<31> >
  326. {
  327. template< typename Vector, typename T > struct apply
  328. {
  329. typedef vector32<
  330. typename Vector::item0, typename Vector::item1
  331. , typename Vector::item2, typename Vector::item3
  332. , typename Vector::item4, typename Vector::item5
  333. , typename Vector::item6, typename Vector::item7
  334. , typename Vector::item8, typename Vector::item9
  335. , typename Vector::item10, typename Vector::item11
  336. , typename Vector::item12, typename Vector::item13
  337. , typename Vector::item14, typename Vector::item15
  338. , typename Vector::item16, typename Vector::item17
  339. , typename Vector::item18, typename Vector::item19
  340. , typename Vector::item20, typename Vector::item21
  341. , typename Vector::item22, typename Vector::item23
  342. , typename Vector::item24, typename Vector::item25
  343. , typename Vector::item26, typename Vector::item27
  344. , typename Vector::item28, typename Vector::item29
  345. , typename Vector::item30
  346. ,
  347. T
  348. > type;
  349. };
  350. };
  351. template<>
  352. struct pop_back_impl< aux::vector_tag<32> >
  353. {
  354. template< typename Vector > struct apply
  355. {
  356. typedef vector31<
  357. typename Vector::item0, typename Vector::item1
  358. , typename Vector::item2, typename Vector::item3
  359. , typename Vector::item4, typename Vector::item5
  360. , typename Vector::item6, typename Vector::item7
  361. , typename Vector::item8, typename Vector::item9
  362. , typename Vector::item10, typename Vector::item11
  363. , typename Vector::item12, typename Vector::item13
  364. , typename Vector::item14, typename Vector::item15
  365. , typename Vector::item16, typename Vector::item17
  366. , typename Vector::item18, typename Vector::item19
  367. , typename Vector::item20, typename Vector::item21
  368. , typename Vector::item22, typename Vector::item23
  369. , typename Vector::item24, typename Vector::item25
  370. , typename Vector::item26, typename Vector::item27
  371. , typename Vector::item28, typename Vector::item29
  372. , typename Vector::item30
  373. > type;
  374. };
  375. };
  376. namespace aux {
  377. template<> struct v_at_impl<32>
  378. {
  379. template< typename V_ > struct result_
  380. {
  381. typedef typename V_::item32 type;
  382. };
  383. };
  384. }
  385. template<>
  386. struct at_impl< aux::vector_tag<32> >
  387. {
  388. template< typename V_, typename N > struct apply
  389. {
  390. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  391. ::template result_<V_>::type type;
  392. };
  393. };
  394. template<>
  395. struct front_impl< aux::vector_tag<32> >
  396. {
  397. template< typename Vector > struct apply
  398. {
  399. typedef typename Vector::item0 type;
  400. };
  401. };
  402. template<>
  403. struct back_impl< aux::vector_tag<32> >
  404. {
  405. template< typename Vector > struct apply
  406. {
  407. typedef typename Vector::back type;
  408. };
  409. };
  410. template<>
  411. struct empty_impl< aux::vector_tag<32> >
  412. {
  413. template< typename Vector > struct apply
  414. : false_
  415. {
  416. };
  417. };
  418. template<>
  419. struct size_impl< aux::vector_tag<32> >
  420. {
  421. template< typename Vector > struct apply
  422. : long_<32>
  423. {
  424. };
  425. };
  426. template<>
  427. struct O1_size_impl< aux::vector_tag<32> >
  428. : size_impl< aux::vector_tag<32> >
  429. {
  430. };
  431. template<>
  432. struct clear_impl< aux::vector_tag<32> >
  433. {
  434. template< typename Vector > struct apply
  435. {
  436. typedef vector0<> type;
  437. };
  438. };
  439. template<
  440. typename T0, typename T1, typename T2, typename T3, typename T4
  441. , typename T5, typename T6, typename T7, typename T8, typename T9
  442. , typename T10, typename T11, typename T12, typename T13, typename T14
  443. , typename T15, typename T16, typename T17, typename T18, typename T19
  444. , typename T20, typename T21, typename T22, typename T23, typename T24
  445. , typename T25, typename T26, typename T27, typename T28, typename T29
  446. , typename T30, typename T31, typename T32
  447. >
  448. struct vector33
  449. {
  450. typedef aux::vector_tag<33> tag;
  451. typedef vector33 type;
  452. typedef T0 item0;
  453. typedef T1 item1;
  454. typedef T2 item2;
  455. typedef T3 item3;
  456. typedef T4 item4;
  457. typedef T5 item5;
  458. typedef T6 item6;
  459. typedef T7 item7;
  460. typedef T8 item8;
  461. typedef T9 item9;
  462. typedef T10 item10;
  463. typedef T11 item11;
  464. typedef T12 item12;
  465. typedef T13 item13;
  466. typedef T14 item14;
  467. typedef T15 item15;
  468. typedef T16 item16;
  469. typedef T17 item17;
  470. typedef T18 item18;
  471. typedef T19 item19;
  472. typedef T20 item20;
  473. typedef T21 item21;
  474. typedef T22 item22;
  475. typedef T23 item23;
  476. typedef T24 item24;
  477. typedef T25 item25;
  478. typedef T26 item26;
  479. typedef T27 item27;
  480. typedef T28 item28;
  481. typedef T29 item29;
  482. typedef T30 item30;
  483. typedef T31 item31;
  484. typedef T32 item32;
  485. typedef void_ item33;
  486. typedef T32 back;
  487. typedef v_iter< type,0 > begin;
  488. typedef v_iter< type,33 > end;
  489. };
  490. template<>
  491. struct push_front_impl< aux::vector_tag<32> >
  492. {
  493. template< typename Vector, typename T > struct apply
  494. {
  495. typedef vector33<
  496. T
  497. ,
  498. typename Vector::item0, typename Vector::item1
  499. , typename Vector::item2, typename Vector::item3
  500. , typename Vector::item4, typename Vector::item5
  501. , typename Vector::item6, typename Vector::item7
  502. , typename Vector::item8, typename Vector::item9
  503. , typename Vector::item10, typename Vector::item11
  504. , typename Vector::item12, typename Vector::item13
  505. , typename Vector::item14, typename Vector::item15
  506. , typename Vector::item16, typename Vector::item17
  507. , typename Vector::item18, typename Vector::item19
  508. , typename Vector::item20, typename Vector::item21
  509. , typename Vector::item22, typename Vector::item23
  510. , typename Vector::item24, typename Vector::item25
  511. , typename Vector::item26, typename Vector::item27
  512. , typename Vector::item28, typename Vector::item29
  513. , typename Vector::item30, typename Vector::item31
  514. > type;
  515. };
  516. };
  517. template<>
  518. struct pop_front_impl< aux::vector_tag<33> >
  519. {
  520. template< typename Vector > struct apply
  521. {
  522. typedef vector32<
  523. typename Vector::item1, typename Vector::item2
  524. , typename Vector::item3, typename Vector::item4
  525. , typename Vector::item5, typename Vector::item6
  526. , typename Vector::item7, typename Vector::item8
  527. , typename Vector::item9, typename Vector::item10
  528. , typename Vector::item11, typename Vector::item12
  529. , typename Vector::item13, typename Vector::item14
  530. , typename Vector::item15, typename Vector::item16
  531. , typename Vector::item17, typename Vector::item18
  532. , typename Vector::item19, typename Vector::item20
  533. , typename Vector::item21, typename Vector::item22
  534. , typename Vector::item23, typename Vector::item24
  535. , typename Vector::item25, typename Vector::item26
  536. , typename Vector::item27, typename Vector::item28
  537. , typename Vector::item29, typename Vector::item30
  538. , typename Vector::item31, typename Vector::item32
  539. > type;
  540. };
  541. };
  542. template<>
  543. struct push_back_impl< aux::vector_tag<32> >
  544. {
  545. template< typename Vector, typename T > struct apply
  546. {
  547. typedef vector33<
  548. typename Vector::item0, typename Vector::item1
  549. , typename Vector::item2, typename Vector::item3
  550. , typename Vector::item4, typename Vector::item5
  551. , typename Vector::item6, typename Vector::item7
  552. , typename Vector::item8, typename Vector::item9
  553. , typename Vector::item10, typename Vector::item11
  554. , typename Vector::item12, typename Vector::item13
  555. , typename Vector::item14, typename Vector::item15
  556. , typename Vector::item16, typename Vector::item17
  557. , typename Vector::item18, typename Vector::item19
  558. , typename Vector::item20, typename Vector::item21
  559. , typename Vector::item22, typename Vector::item23
  560. , typename Vector::item24, typename Vector::item25
  561. , typename Vector::item26, typename Vector::item27
  562. , typename Vector::item28, typename Vector::item29
  563. , typename Vector::item30, typename Vector::item31
  564. ,
  565. T
  566. > type;
  567. };
  568. };
  569. template<>
  570. struct pop_back_impl< aux::vector_tag<33> >
  571. {
  572. template< typename Vector > struct apply
  573. {
  574. typedef vector32<
  575. typename Vector::item0, typename Vector::item1
  576. , typename Vector::item2, typename Vector::item3
  577. , typename Vector::item4, typename Vector::item5
  578. , typename Vector::item6, typename Vector::item7
  579. , typename Vector::item8, typename Vector::item9
  580. , typename Vector::item10, typename Vector::item11
  581. , typename Vector::item12, typename Vector::item13
  582. , typename Vector::item14, typename Vector::item15
  583. , typename Vector::item16, typename Vector::item17
  584. , typename Vector::item18, typename Vector::item19
  585. , typename Vector::item20, typename Vector::item21
  586. , typename Vector::item22, typename Vector::item23
  587. , typename Vector::item24, typename Vector::item25
  588. , typename Vector::item26, typename Vector::item27
  589. , typename Vector::item28, typename Vector::item29
  590. , typename Vector::item30, typename Vector::item31
  591. > type;
  592. };
  593. };
  594. namespace aux {
  595. template<> struct v_at_impl<33>
  596. {
  597. template< typename V_ > struct result_
  598. {
  599. typedef typename V_::item33 type;
  600. };
  601. };
  602. }
  603. template<>
  604. struct at_impl< aux::vector_tag<33> >
  605. {
  606. template< typename V_, typename N > struct apply
  607. {
  608. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  609. ::template result_<V_>::type type;
  610. };
  611. };
  612. template<>
  613. struct front_impl< aux::vector_tag<33> >
  614. {
  615. template< typename Vector > struct apply
  616. {
  617. typedef typename Vector::item0 type;
  618. };
  619. };
  620. template<>
  621. struct back_impl< aux::vector_tag<33> >
  622. {
  623. template< typename Vector > struct apply
  624. {
  625. typedef typename Vector::back type;
  626. };
  627. };
  628. template<>
  629. struct empty_impl< aux::vector_tag<33> >
  630. {
  631. template< typename Vector > struct apply
  632. : false_
  633. {
  634. };
  635. };
  636. template<>
  637. struct size_impl< aux::vector_tag<33> >
  638. {
  639. template< typename Vector > struct apply
  640. : long_<33>
  641. {
  642. };
  643. };
  644. template<>
  645. struct O1_size_impl< aux::vector_tag<33> >
  646. : size_impl< aux::vector_tag<33> >
  647. {
  648. };
  649. template<>
  650. struct clear_impl< aux::vector_tag<33> >
  651. {
  652. template< typename Vector > struct apply
  653. {
  654. typedef vector0<> type;
  655. };
  656. };
  657. template<
  658. typename T0, typename T1, typename T2, typename T3, typename T4
  659. , typename T5, typename T6, typename T7, typename T8, typename T9
  660. , typename T10, typename T11, typename T12, typename T13, typename T14
  661. , typename T15, typename T16, typename T17, typename T18, typename T19
  662. , typename T20, typename T21, typename T22, typename T23, typename T24
  663. , typename T25, typename T26, typename T27, typename T28, typename T29
  664. , typename T30, typename T31, typename T32, typename T33
  665. >
  666. struct vector34
  667. {
  668. typedef aux::vector_tag<34> tag;
  669. typedef vector34 type;
  670. typedef T0 item0;
  671. typedef T1 item1;
  672. typedef T2 item2;
  673. typedef T3 item3;
  674. typedef T4 item4;
  675. typedef T5 item5;
  676. typedef T6 item6;
  677. typedef T7 item7;
  678. typedef T8 item8;
  679. typedef T9 item9;
  680. typedef T10 item10;
  681. typedef T11 item11;
  682. typedef T12 item12;
  683. typedef T13 item13;
  684. typedef T14 item14;
  685. typedef T15 item15;
  686. typedef T16 item16;
  687. typedef T17 item17;
  688. typedef T18 item18;
  689. typedef T19 item19;
  690. typedef T20 item20;
  691. typedef T21 item21;
  692. typedef T22 item22;
  693. typedef T23 item23;
  694. typedef T24 item24;
  695. typedef T25 item25;
  696. typedef T26 item26;
  697. typedef T27 item27;
  698. typedef T28 item28;
  699. typedef T29 item29;
  700. typedef T30 item30;
  701. typedef T31 item31;
  702. typedef T32 item32;
  703. typedef T33 item33;
  704. typedef void_ item34;
  705. typedef T33 back;
  706. typedef v_iter< type,0 > begin;
  707. typedef v_iter< type,34 > end;
  708. };
  709. template<>
  710. struct push_front_impl< aux::vector_tag<33> >
  711. {
  712. template< typename Vector, typename T > struct apply
  713. {
  714. typedef vector34<
  715. T
  716. ,
  717. typename Vector::item0, typename Vector::item1
  718. , typename Vector::item2, typename Vector::item3
  719. , typename Vector::item4, typename Vector::item5
  720. , typename Vector::item6, typename Vector::item7
  721. , typename Vector::item8, typename Vector::item9
  722. , typename Vector::item10, typename Vector::item11
  723. , typename Vector::item12, typename Vector::item13
  724. , typename Vector::item14, typename Vector::item15
  725. , typename Vector::item16, typename Vector::item17
  726. , typename Vector::item18, typename Vector::item19
  727. , typename Vector::item20, typename Vector::item21
  728. , typename Vector::item22, typename Vector::item23
  729. , typename Vector::item24, typename Vector::item25
  730. , typename Vector::item26, typename Vector::item27
  731. , typename Vector::item28, typename Vector::item29
  732. , typename Vector::item30, typename Vector::item31
  733. , typename Vector::item32
  734. > type;
  735. };
  736. };
  737. template<>
  738. struct pop_front_impl< aux::vector_tag<34> >
  739. {
  740. template< typename Vector > struct apply
  741. {
  742. typedef vector33<
  743. typename Vector::item1, typename Vector::item2
  744. , typename Vector::item3, typename Vector::item4
  745. , typename Vector::item5, typename Vector::item6
  746. , typename Vector::item7, typename Vector::item8
  747. , typename Vector::item9, typename Vector::item10
  748. , typename Vector::item11, typename Vector::item12
  749. , typename Vector::item13, typename Vector::item14
  750. , typename Vector::item15, typename Vector::item16
  751. , typename Vector::item17, typename Vector::item18
  752. , typename Vector::item19, typename Vector::item20
  753. , typename Vector::item21, typename Vector::item22
  754. , typename Vector::item23, typename Vector::item24
  755. , typename Vector::item25, typename Vector::item26
  756. , typename Vector::item27, typename Vector::item28
  757. , typename Vector::item29, typename Vector::item30
  758. , typename Vector::item31, typename Vector::item32
  759. , typename Vector::item33
  760. > type;
  761. };
  762. };
  763. template<>
  764. struct push_back_impl< aux::vector_tag<33> >
  765. {
  766. template< typename Vector, typename T > struct apply
  767. {
  768. typedef vector34<
  769. typename Vector::item0, typename Vector::item1
  770. , typename Vector::item2, typename Vector::item3
  771. , typename Vector::item4, typename Vector::item5
  772. , typename Vector::item6, typename Vector::item7
  773. , typename Vector::item8, typename Vector::item9
  774. , typename Vector::item10, typename Vector::item11
  775. , typename Vector::item12, typename Vector::item13
  776. , typename Vector::item14, typename Vector::item15
  777. , typename Vector::item16, typename Vector::item17
  778. , typename Vector::item18, typename Vector::item19
  779. , typename Vector::item20, typename Vector::item21
  780. , typename Vector::item22, typename Vector::item23
  781. , typename Vector::item24, typename Vector::item25
  782. , typename Vector::item26, typename Vector::item27
  783. , typename Vector::item28, typename Vector::item29
  784. , typename Vector::item30, typename Vector::item31
  785. , typename Vector::item32
  786. ,
  787. T
  788. > type;
  789. };
  790. };
  791. template<>
  792. struct pop_back_impl< aux::vector_tag<34> >
  793. {
  794. template< typename Vector > struct apply
  795. {
  796. typedef vector33<
  797. typename Vector::item0, typename Vector::item1
  798. , typename Vector::item2, typename Vector::item3
  799. , typename Vector::item4, typename Vector::item5
  800. , typename Vector::item6, typename Vector::item7
  801. , typename Vector::item8, typename Vector::item9
  802. , typename Vector::item10, typename Vector::item11
  803. , typename Vector::item12, typename Vector::item13
  804. , typename Vector::item14, typename Vector::item15
  805. , typename Vector::item16, typename Vector::item17
  806. , typename Vector::item18, typename Vector::item19
  807. , typename Vector::item20, typename Vector::item21
  808. , typename Vector::item22, typename Vector::item23
  809. , typename Vector::item24, typename Vector::item25
  810. , typename Vector::item26, typename Vector::item27
  811. , typename Vector::item28, typename Vector::item29
  812. , typename Vector::item30, typename Vector::item31
  813. , typename Vector::item32
  814. > type;
  815. };
  816. };
  817. namespace aux {
  818. template<> struct v_at_impl<34>
  819. {
  820. template< typename V_ > struct result_
  821. {
  822. typedef typename V_::item34 type;
  823. };
  824. };
  825. }
  826. template<>
  827. struct at_impl< aux::vector_tag<34> >
  828. {
  829. template< typename V_, typename N > struct apply
  830. {
  831. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  832. ::template result_<V_>::type type;
  833. };
  834. };
  835. template<>
  836. struct front_impl< aux::vector_tag<34> >
  837. {
  838. template< typename Vector > struct apply
  839. {
  840. typedef typename Vector::item0 type;
  841. };
  842. };
  843. template<>
  844. struct back_impl< aux::vector_tag<34> >
  845. {
  846. template< typename Vector > struct apply
  847. {
  848. typedef typename Vector::back type;
  849. };
  850. };
  851. template<>
  852. struct empty_impl< aux::vector_tag<34> >
  853. {
  854. template< typename Vector > struct apply
  855. : false_
  856. {
  857. };
  858. };
  859. template<>
  860. struct size_impl< aux::vector_tag<34> >
  861. {
  862. template< typename Vector > struct apply
  863. : long_<34>
  864. {
  865. };
  866. };
  867. template<>
  868. struct O1_size_impl< aux::vector_tag<34> >
  869. : size_impl< aux::vector_tag<34> >
  870. {
  871. };
  872. template<>
  873. struct clear_impl< aux::vector_tag<34> >
  874. {
  875. template< typename Vector > struct apply
  876. {
  877. typedef vector0<> type;
  878. };
  879. };
  880. template<
  881. typename T0, typename T1, typename T2, typename T3, typename T4
  882. , typename T5, typename T6, typename T7, typename T8, typename T9
  883. , typename T10, typename T11, typename T12, typename T13, typename T14
  884. , typename T15, typename T16, typename T17, typename T18, typename T19
  885. , typename T20, typename T21, typename T22, typename T23, typename T24
  886. , typename T25, typename T26, typename T27, typename T28, typename T29
  887. , typename T30, typename T31, typename T32, typename T33, typename T34
  888. >
  889. struct vector35
  890. {
  891. typedef aux::vector_tag<35> tag;
  892. typedef vector35 type;
  893. typedef T0 item0;
  894. typedef T1 item1;
  895. typedef T2 item2;
  896. typedef T3 item3;
  897. typedef T4 item4;
  898. typedef T5 item5;
  899. typedef T6 item6;
  900. typedef T7 item7;
  901. typedef T8 item8;
  902. typedef T9 item9;
  903. typedef T10 item10;
  904. typedef T11 item11;
  905. typedef T12 item12;
  906. typedef T13 item13;
  907. typedef T14 item14;
  908. typedef T15 item15;
  909. typedef T16 item16;
  910. typedef T17 item17;
  911. typedef T18 item18;
  912. typedef T19 item19;
  913. typedef T20 item20;
  914. typedef T21 item21;
  915. typedef T22 item22;
  916. typedef T23 item23;
  917. typedef T24 item24;
  918. typedef T25 item25;
  919. typedef T26 item26;
  920. typedef T27 item27;
  921. typedef T28 item28;
  922. typedef T29 item29;
  923. typedef T30 item30;
  924. typedef T31 item31;
  925. typedef T32 item32;
  926. typedef T33 item33;
  927. typedef T34 item34;
  928. typedef void_ item35;
  929. typedef T34 back;
  930. typedef v_iter< type,0 > begin;
  931. typedef v_iter< type,35 > end;
  932. };
  933. template<>
  934. struct push_front_impl< aux::vector_tag<34> >
  935. {
  936. template< typename Vector, typename T > struct apply
  937. {
  938. typedef vector35<
  939. T
  940. ,
  941. typename Vector::item0, typename Vector::item1
  942. , typename Vector::item2, typename Vector::item3
  943. , typename Vector::item4, typename Vector::item5
  944. , typename Vector::item6, typename Vector::item7
  945. , typename Vector::item8, typename Vector::item9
  946. , typename Vector::item10, typename Vector::item11
  947. , typename Vector::item12, typename Vector::item13
  948. , typename Vector::item14, typename Vector::item15
  949. , typename Vector::item16, typename Vector::item17
  950. , typename Vector::item18, typename Vector::item19
  951. , typename Vector::item20, typename Vector::item21
  952. , typename Vector::item22, typename Vector::item23
  953. , typename Vector::item24, typename Vector::item25
  954. , typename Vector::item26, typename Vector::item27
  955. , typename Vector::item28, typename Vector::item29
  956. , typename Vector::item30, typename Vector::item31
  957. , typename Vector::item32, typename Vector::item33
  958. > type;
  959. };
  960. };
  961. template<>
  962. struct pop_front_impl< aux::vector_tag<35> >
  963. {
  964. template< typename Vector > struct apply
  965. {
  966. typedef vector34<
  967. typename Vector::item1, typename Vector::item2
  968. , typename Vector::item3, typename Vector::item4
  969. , typename Vector::item5, typename Vector::item6
  970. , typename Vector::item7, typename Vector::item8
  971. , typename Vector::item9, typename Vector::item10
  972. , typename Vector::item11, typename Vector::item12
  973. , typename Vector::item13, typename Vector::item14
  974. , typename Vector::item15, typename Vector::item16
  975. , typename Vector::item17, typename Vector::item18
  976. , typename Vector::item19, typename Vector::item20
  977. , typename Vector::item21, typename Vector::item22
  978. , typename Vector::item23, typename Vector::item24
  979. , typename Vector::item25, typename Vector::item26
  980. , typename Vector::item27, typename Vector::item28
  981. , typename Vector::item29, typename Vector::item30
  982. , typename Vector::item31, typename Vector::item32
  983. , typename Vector::item33, typename Vector::item34
  984. > type;
  985. };
  986. };
  987. template<>
  988. struct push_back_impl< aux::vector_tag<34> >
  989. {
  990. template< typename Vector, typename T > struct apply
  991. {
  992. typedef vector35<
  993. typename Vector::item0, typename Vector::item1
  994. , typename Vector::item2, typename Vector::item3
  995. , typename Vector::item4, typename Vector::item5
  996. , typename Vector::item6, typename Vector::item7
  997. , typename Vector::item8, typename Vector::item9
  998. , typename Vector::item10, typename Vector::item11
  999. , typename Vector::item12, typename Vector::item13
  1000. , typename Vector::item14, typename Vector::item15
  1001. , typename Vector::item16, typename Vector::item17
  1002. , typename Vector::item18, typename Vector::item19
  1003. , typename Vector::item20, typename Vector::item21
  1004. , typename Vector::item22, typename Vector::item23
  1005. , typename Vector::item24, typename Vector::item25
  1006. , typename Vector::item26, typename Vector::item27
  1007. , typename Vector::item28, typename Vector::item29
  1008. , typename Vector::item30, typename Vector::item31
  1009. , typename Vector::item32, typename Vector::item33
  1010. ,
  1011. T
  1012. > type;
  1013. };
  1014. };
  1015. template<>
  1016. struct pop_back_impl< aux::vector_tag<35> >
  1017. {
  1018. template< typename Vector > struct apply
  1019. {
  1020. typedef vector34<
  1021. typename Vector::item0, typename Vector::item1
  1022. , typename Vector::item2, typename Vector::item3
  1023. , typename Vector::item4, typename Vector::item5
  1024. , typename Vector::item6, typename Vector::item7
  1025. , typename Vector::item8, typename Vector::item9
  1026. , typename Vector::item10, typename Vector::item11
  1027. , typename Vector::item12, typename Vector::item13
  1028. , typename Vector::item14, typename Vector::item15
  1029. , typename Vector::item16, typename Vector::item17
  1030. , typename Vector::item18, typename Vector::item19
  1031. , typename Vector::item20, typename Vector::item21
  1032. , typename Vector::item22, typename Vector::item23
  1033. , typename Vector::item24, typename Vector::item25
  1034. , typename Vector::item26, typename Vector::item27
  1035. , typename Vector::item28, typename Vector::item29
  1036. , typename Vector::item30, typename Vector::item31
  1037. , typename Vector::item32, typename Vector::item33
  1038. > type;
  1039. };
  1040. };
  1041. namespace aux {
  1042. template<> struct v_at_impl<35>
  1043. {
  1044. template< typename V_ > struct result_
  1045. {
  1046. typedef typename V_::item35 type;
  1047. };
  1048. };
  1049. }
  1050. template<>
  1051. struct at_impl< aux::vector_tag<35> >
  1052. {
  1053. template< typename V_, typename N > struct apply
  1054. {
  1055. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  1056. ::template result_<V_>::type type;
  1057. };
  1058. };
  1059. template<>
  1060. struct front_impl< aux::vector_tag<35> >
  1061. {
  1062. template< typename Vector > struct apply
  1063. {
  1064. typedef typename Vector::item0 type;
  1065. };
  1066. };
  1067. template<>
  1068. struct back_impl< aux::vector_tag<35> >
  1069. {
  1070. template< typename Vector > struct apply
  1071. {
  1072. typedef typename Vector::back type;
  1073. };
  1074. };
  1075. template<>
  1076. struct empty_impl< aux::vector_tag<35> >
  1077. {
  1078. template< typename Vector > struct apply
  1079. : false_
  1080. {
  1081. };
  1082. };
  1083. template<>
  1084. struct size_impl< aux::vector_tag<35> >
  1085. {
  1086. template< typename Vector > struct apply
  1087. : long_<35>
  1088. {
  1089. };
  1090. };
  1091. template<>
  1092. struct O1_size_impl< aux::vector_tag<35> >
  1093. : size_impl< aux::vector_tag<35> >
  1094. {
  1095. };
  1096. template<>
  1097. struct clear_impl< aux::vector_tag<35> >
  1098. {
  1099. template< typename Vector > struct apply
  1100. {
  1101. typedef vector0<> type;
  1102. };
  1103. };
  1104. template<
  1105. typename T0, typename T1, typename T2, typename T3, typename T4
  1106. , typename T5, typename T6, typename T7, typename T8, typename T9
  1107. , typename T10, typename T11, typename T12, typename T13, typename T14
  1108. , typename T15, typename T16, typename T17, typename T18, typename T19
  1109. , typename T20, typename T21, typename T22, typename T23, typename T24
  1110. , typename T25, typename T26, typename T27, typename T28, typename T29
  1111. , typename T30, typename T31, typename T32, typename T33, typename T34
  1112. , typename T35
  1113. >
  1114. struct vector36
  1115. {
  1116. typedef aux::vector_tag<36> tag;
  1117. typedef vector36 type;
  1118. typedef T0 item0;
  1119. typedef T1 item1;
  1120. typedef T2 item2;
  1121. typedef T3 item3;
  1122. typedef T4 item4;
  1123. typedef T5 item5;
  1124. typedef T6 item6;
  1125. typedef T7 item7;
  1126. typedef T8 item8;
  1127. typedef T9 item9;
  1128. typedef T10 item10;
  1129. typedef T11 item11;
  1130. typedef T12 item12;
  1131. typedef T13 item13;
  1132. typedef T14 item14;
  1133. typedef T15 item15;
  1134. typedef T16 item16;
  1135. typedef T17 item17;
  1136. typedef T18 item18;
  1137. typedef T19 item19;
  1138. typedef T20 item20;
  1139. typedef T21 item21;
  1140. typedef T22 item22;
  1141. typedef T23 item23;
  1142. typedef T24 item24;
  1143. typedef T25 item25;
  1144. typedef T26 item26;
  1145. typedef T27 item27;
  1146. typedef T28 item28;
  1147. typedef T29 item29;
  1148. typedef T30 item30;
  1149. typedef T31 item31;
  1150. typedef T32 item32;
  1151. typedef T33 item33;
  1152. typedef T34 item34;
  1153. typedef T35 item35;
  1154. typedef void_ item36;
  1155. typedef T35 back;
  1156. typedef v_iter< type,0 > begin;
  1157. typedef v_iter< type,36 > end;
  1158. };
  1159. template<>
  1160. struct push_front_impl< aux::vector_tag<35> >
  1161. {
  1162. template< typename Vector, typename T > struct apply
  1163. {
  1164. typedef vector36<
  1165. T
  1166. ,
  1167. typename Vector::item0, typename Vector::item1
  1168. , typename Vector::item2, typename Vector::item3
  1169. , typename Vector::item4, typename Vector::item5
  1170. , typename Vector::item6, typename Vector::item7
  1171. , typename Vector::item8, typename Vector::item9
  1172. , typename Vector::item10, typename Vector::item11
  1173. , typename Vector::item12, typename Vector::item13
  1174. , typename Vector::item14, typename Vector::item15
  1175. , typename Vector::item16, typename Vector::item17
  1176. , typename Vector::item18, typename Vector::item19
  1177. , typename Vector::item20, typename Vector::item21
  1178. , typename Vector::item22, typename Vector::item23
  1179. , typename Vector::item24, typename Vector::item25
  1180. , typename Vector::item26, typename Vector::item27
  1181. , typename Vector::item28, typename Vector::item29
  1182. , typename Vector::item30, typename Vector::item31
  1183. , typename Vector::item32, typename Vector::item33
  1184. , typename Vector::item34
  1185. > type;
  1186. };
  1187. };
  1188. template<>
  1189. struct pop_front_impl< aux::vector_tag<36> >
  1190. {
  1191. template< typename Vector > struct apply
  1192. {
  1193. typedef vector35<
  1194. typename Vector::item1, typename Vector::item2
  1195. , typename Vector::item3, typename Vector::item4
  1196. , typename Vector::item5, typename Vector::item6
  1197. , typename Vector::item7, typename Vector::item8
  1198. , typename Vector::item9, typename Vector::item10
  1199. , typename Vector::item11, typename Vector::item12
  1200. , typename Vector::item13, typename Vector::item14
  1201. , typename Vector::item15, typename Vector::item16
  1202. , typename Vector::item17, typename Vector::item18
  1203. , typename Vector::item19, typename Vector::item20
  1204. , typename Vector::item21, typename Vector::item22
  1205. , typename Vector::item23, typename Vector::item24
  1206. , typename Vector::item25, typename Vector::item26
  1207. , typename Vector::item27, typename Vector::item28
  1208. , typename Vector::item29, typename Vector::item30
  1209. , typename Vector::item31, typename Vector::item32
  1210. , typename Vector::item33, typename Vector::item34
  1211. , typename Vector::item35
  1212. > type;
  1213. };
  1214. };
  1215. template<>
  1216. struct push_back_impl< aux::vector_tag<35> >
  1217. {
  1218. template< typename Vector, typename T > struct apply
  1219. {
  1220. typedef vector36<
  1221. typename Vector::item0, typename Vector::item1
  1222. , typename Vector::item2, typename Vector::item3
  1223. , typename Vector::item4, typename Vector::item5
  1224. , typename Vector::item6, typename Vector::item7
  1225. , typename Vector::item8, typename Vector::item9
  1226. , typename Vector::item10, typename Vector::item11
  1227. , typename Vector::item12, typename Vector::item13
  1228. , typename Vector::item14, typename Vector::item15
  1229. , typename Vector::item16, typename Vector::item17
  1230. , typename Vector::item18, typename Vector::item19
  1231. , typename Vector::item20, typename Vector::item21
  1232. , typename Vector::item22, typename Vector::item23
  1233. , typename Vector::item24, typename Vector::item25
  1234. , typename Vector::item26, typename Vector::item27
  1235. , typename Vector::item28, typename Vector::item29
  1236. , typename Vector::item30, typename Vector::item31
  1237. , typename Vector::item32, typename Vector::item33
  1238. , typename Vector::item34
  1239. ,
  1240. T
  1241. > type;
  1242. };
  1243. };
  1244. template<>
  1245. struct pop_back_impl< aux::vector_tag<36> >
  1246. {
  1247. template< typename Vector > struct apply
  1248. {
  1249. typedef vector35<
  1250. typename Vector::item0, typename Vector::item1
  1251. , typename Vector::item2, typename Vector::item3
  1252. , typename Vector::item4, typename Vector::item5
  1253. , typename Vector::item6, typename Vector::item7
  1254. , typename Vector::item8, typename Vector::item9
  1255. , typename Vector::item10, typename Vector::item11
  1256. , typename Vector::item12, typename Vector::item13
  1257. , typename Vector::item14, typename Vector::item15
  1258. , typename Vector::item16, typename Vector::item17
  1259. , typename Vector::item18, typename Vector::item19
  1260. , typename Vector::item20, typename Vector::item21
  1261. , typename Vector::item22, typename Vector::item23
  1262. , typename Vector::item24, typename Vector::item25
  1263. , typename Vector::item26, typename Vector::item27
  1264. , typename Vector::item28, typename Vector::item29
  1265. , typename Vector::item30, typename Vector::item31
  1266. , typename Vector::item32, typename Vector::item33
  1267. , typename Vector::item34
  1268. > type;
  1269. };
  1270. };
  1271. namespace aux {
  1272. template<> struct v_at_impl<36>
  1273. {
  1274. template< typename V_ > struct result_
  1275. {
  1276. typedef typename V_::item36 type;
  1277. };
  1278. };
  1279. }
  1280. template<>
  1281. struct at_impl< aux::vector_tag<36> >
  1282. {
  1283. template< typename V_, typename N > struct apply
  1284. {
  1285. typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
  1286. ::template result_<V_>::type type;
  1287. };
  1288. };
  1289. template<>
  1290. struct front_impl< aux::vector_tag<36> >
  1291. {
  1292. template< typename Vector > struct apply
  1293. {
  1294. typedef typename Vector::item0 type;
  1295. };
  1296. };
  1297. template<>
  1298. struct back_impl< aux::vector_tag<36> >
  1299. {
  1300. template< typename Vector > struct apply
  1301. {
  1302. typedef typename Vector::back type;
  1303. };
  1304. };
  1305. template<>
  1306. struct empty_impl< aux::vector_tag<36> >
  1307. {
  1308. template< typename Vector > struct apply
  1309. : false_
  1310. {
  1311. };
  1312. };
  1313. template<>
  1314. struct size_impl< aux::vector_tag<36> >
  1315. {
  1316. template< typename Vector > struct apply
  1317. : long_<36>
  1318. {
  1319. };
  1320. };
  1321. template<>
  1322. struct O1_size_impl< aux::vector_tag<36> >
  1323. : size_impl< aux::vector_tag<36> >
  1324. {
  1325. };
  1326. template<>
  1327. struct clear_impl< aux::vector_tag<36> >
  1328. {
  1329. template< typename Vector > struct apply
  1330. {
  1331. typedef vector0<> type;
  1332. };
  1333. };
  1334. template<
  1335. typename T0, typename T1, typename T2, typename T3, typename T4
  1336. , typename T5, typename T6, typename T7, typename T8, typename T9
  1337. , typename T10, typename T11, typename T12, typename T13, typename T14
  1338. , typename T15, typename T16, typename T17, typename T18, typename T19
  1339. , typename T20, typename T21, typename T22, typename T23, typename T24
  1340. , typename T25, typename T26, typename T27, typename T28, typename T29
  1341. , typename T30, typename T31, typename T32, typename T33, typename T34
  1342. , typename T35, typename T36
  1343. >
  1344. struct vector37
  1345. {
  1346. typedef aux::vector_tag<37> tag;
  1347. typedef vector37 type;
  1348. typedef T0 item0;
  1349. typedef T1 item1;
  1350. typedef T2 item2;
  1351. typedef T3 item3;
  1352. typedef T4 item4;
  1353. typedef T5 item5;
  1354. typedef T6 item6;
  1355. typedef T7 item7;
  1356. typedef T8 item8;
  1357. typedef T9 item9;
  1358. typedef T10 item10;
  1359. typedef T11 item11;
  1360. typedef T12 item12;
  1361. typedef T13 item13;
  1362. typedef T14 item14;
  1363. typedef T15 item15;
  1364. typedef T16 item16;
  1365. typedef T17 item17;
  1366. typedef T18 item18;
  1367. typedef T19 item19;
  1368. typedef T20 item20;
  1369. typedef T21 item21;
  1370. typedef T22 item22;
  1371. typedef T23 item23;
  1372. typedef T24 item24;
  1373. typedef T25 item25;
  1374. typedef T26 item26;
  1375. typedef T27 item27;
  1376. typedef T28 item28;
  1377. typedef T29 item29;
  1378. typedef T30 item30;
  1379. typedef T31 item31;
  1380. typedef T32 item32;
  1381. typedef T33 item33;
  1382. typedef T34 item34;
  1383. typedef T35 item35;
  1384. typedef T36 item36;
  1385. typedef void_ item37;
  1386. typedef T36 back;
  1387. typedef v_iter< type,0 > begin;
  1388. typedef v_iter< type,37 > end;
  1389. };
  1390. template<>
  1391. struct push_front_impl< aux::vector_tag<36> >
  1392. {
  1393. template< typename Vector, typename T > struct apply
  1394. {
  1395. typedef vector37<
  1396. T
  1397. ,
  1398. typename Vector::item0, typename Vector::item1
  1399. , typename Vector::item2, typename Vector::item3
  1400. , typename Vector::item4, typename Vector::item5
  1401. , typename Vector::item6, typename Vector::item7
  1402. , typename Vector::item8, typename Vector::item9
  1403. , typename Vector::item10, typename Vector::item11
  1404. , typename Vector::item12, typename Vector::item13
  1405. , typename Vector::item14, typename Vector::item15
  1406. , typename Vector::item16, typename Vector::item17
  1407. , typename Vector::item18, typename Vector::item19
  1408. , typename Vector::item20, typename Vector::item21
  1409. , typename Vector::item22, typename Vector::item23
  1410. , typename Vector::item24, typename Vector::item25
  1411. , typename Vector::item26, typename Vector::item27
  1412. , typename Vector::item28, typename Vector::item29
  1413. , typename Vector::item30, typename Vector::item31
  1414. , typename Vector::item32, typename Vector::item33
  1415. , typename Vector::item34, typename Vector::item35
  1416. > type;
  1417. };
  1418. };
  1419. template<>
  1420. struct pop_front_impl< aux::vector_tag<37> >
  1421. {
  1422. template< typename Vector > struct apply
  1423. {
  1424. typedef vector36<
  1425. typename Vector::item1, typename Vector::item2
  1426. , typename Vector::item3, typename Vector::item4
  1427. , typename Vector::item5, typename Vector::item6
  1428. , typename Vector::item7, typename Vector::item8
  1429. , typename Vector::item9, typename Vector::item10
  1430. , typename Vector::item11, typename Vector::item12
  1431. , typename Vector::item13, typename Vector::item14
  1432. , typename Vector::item15, typename Vector::item16
  1433. , typename Vector::item17, typename Vector::item18
  1434. , typename Vector::item19, typename Vector::item20
  1435. , typename Vector::item21, typename Vector::item22
  1436. , typename Vector::item23, typename Vector::item24
  1437. , typename Vector::item25, typename Vector::item26
  1438. , typename Vector::item27, typename Vector::item28
  1439. , typename Vector::item29, typename Vector::item30
  1440. , typename Vector::item31, typename Vector::item32
  1441. , typename Vector::item33, typename Vector::item34
  1442. , typename Vector::item35, typename Vector::item36
  1443. > type;
  1444. };
  1445. };
  1446. template<>
  1447. struct push_back_im