PageRenderTime 74ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 1ms

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

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