PageRenderTime 57ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 1ms

/src/contrib/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp

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