BVB Source Codes

mars Show vector20.hpp Source code

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

 Back to top