Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:45

0001 
0002 // Copyright Aleksey Gurtovoy 2000-2004
0003 //
0004 // Distributed under the Boost Software License, Version 1.0. 
0005 // (See accompanying file LICENSE_1_0.txt or copy at 
0006 // http://www.boost.org/LICENSE_1_0.txt)
0007 //
0008 
0009 // Preprocessed version of "boost/mpl/vector/vector20.hpp" header
0010 // -- DO NOT modify by hand!
0011 
0012 namespace boost { namespace mpl {
0013 
0014 template<
0015       typename T0, typename T1, typename T2, typename T3, typename T4
0016     , typename T5, typename T6, typename T7, typename T8, typename T9
0017     , typename T10
0018     >
0019 struct vector11
0020 {
0021     typedef aux::vector_tag<11> tag;
0022     typedef vector11 type;
0023     typedef T0 item0;
0024     typedef T1 item1;
0025     typedef T2 item2;
0026     typedef T3 item3;
0027     typedef T4 item4;
0028     typedef T5 item5;
0029     typedef T6 item6;
0030     typedef T7 item7;
0031     typedef T8 item8;
0032     typedef T9 item9;
0033     typedef T10 item10;
0034     
0035 
0036     typedef void_ item11;
0037     typedef T10 back;
0038     typedef v_iter< type,0 > begin;
0039     typedef v_iter< type,11 > end;
0040 };
0041 
0042 template<>
0043 struct push_front_impl< aux::vector_tag<10> >
0044 {
0045     template< typename Vector, typename T > struct apply
0046     {
0047         typedef vector11<
0048               T
0049               ,
0050               typename Vector::item0, typename Vector::item1
0051             , typename Vector::item2, typename Vector::item3
0052             , typename Vector::item4, typename Vector::item5
0053             , typename Vector::item6, typename Vector::item7
0054             , typename Vector::item8, typename Vector::item9
0055             > type;
0056     };
0057 };
0058 
0059 template<>
0060 struct pop_front_impl< aux::vector_tag<11> >
0061 {
0062     template< typename Vector > struct apply
0063     {
0064         typedef vector10<
0065               typename Vector::item1, typename Vector::item2
0066             , typename Vector::item3, typename Vector::item4
0067             , typename Vector::item5, typename Vector::item6
0068             , typename Vector::item7, typename Vector::item8
0069             , typename Vector::item9, typename Vector::item10
0070             > type;
0071     };
0072 };
0073 
0074 template<>
0075 struct push_back_impl< aux::vector_tag<10> >
0076 {
0077     template< typename Vector, typename T > struct apply
0078     {
0079         typedef vector11<
0080               typename Vector::item0, typename Vector::item1
0081             , typename Vector::item2, typename Vector::item3
0082             , typename Vector::item4, typename Vector::item5
0083             , typename Vector::item6, typename Vector::item7
0084             , typename Vector::item8, typename Vector::item9
0085               ,
0086               T
0087             > type;
0088     };
0089 };
0090 
0091 template<>
0092 struct pop_back_impl< aux::vector_tag<11> >
0093 {
0094     template< typename Vector > struct apply
0095     {
0096         typedef vector10<
0097               typename Vector::item0, typename Vector::item1
0098             , typename Vector::item2, typename Vector::item3
0099             , typename Vector::item4, typename Vector::item5
0100             , typename Vector::item6, typename Vector::item7
0101             , typename Vector::item8, typename Vector::item9
0102             > type;
0103     };
0104 };
0105 
0106 namespace aux {
0107 template<> struct v_at_impl<11>
0108 {
0109     template< typename V_ > struct result_
0110     {
0111         typedef typename V_::item11 type;
0112     };
0113 };
0114 
0115 }
0116 
0117 template<>
0118 struct at_impl< aux::vector_tag<11> >
0119 {
0120     template< typename V_, typename N > struct apply
0121     {
0122         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0123             ::template result_<V_>::type type;
0124     };
0125 };
0126 
0127 template<>
0128 struct front_impl< aux::vector_tag<11> >
0129 {
0130     template< typename Vector > struct apply
0131     {
0132         typedef typename Vector::item0 type;
0133     };
0134 };
0135 
0136 template<>
0137 struct back_impl< aux::vector_tag<11> >
0138 {
0139     template< typename Vector > struct apply
0140     {
0141         typedef typename Vector::back type;
0142     };
0143 };
0144 
0145 template<>
0146 struct empty_impl< aux::vector_tag<11> >
0147 {
0148     template< typename Vector > struct apply
0149         : false_
0150     {
0151     };
0152 };
0153 
0154 template<>
0155 struct size_impl< aux::vector_tag<11> >
0156 {
0157     template< typename Vector > struct apply
0158         : long_<11>
0159     {
0160     };
0161 };
0162 
0163 template<>
0164 struct O1_size_impl< aux::vector_tag<11> >
0165     : size_impl< aux::vector_tag<11> >
0166 {
0167 };
0168 
0169 template<>
0170 struct clear_impl< aux::vector_tag<11> >
0171 {
0172     template< typename Vector > struct apply
0173     {
0174         typedef vector0<> type;
0175     };
0176 };
0177 
0178 template<
0179       typename T0, typename T1, typename T2, typename T3, typename T4
0180     , typename T5, typename T6, typename T7, typename T8, typename T9
0181     , typename T10, typename T11
0182     >
0183 struct vector12
0184 {
0185     typedef aux::vector_tag<12> tag;
0186     typedef vector12 type;
0187     typedef T0 item0;
0188     typedef T1 item1;
0189     typedef T2 item2;
0190     typedef T3 item3;
0191     typedef T4 item4;
0192     typedef T5 item5;
0193     typedef T6 item6;
0194     typedef T7 item7;
0195     typedef T8 item8;
0196     typedef T9 item9;
0197     typedef T10 item10;
0198     typedef T11 item11;
0199     
0200 
0201     typedef void_ item12;
0202     typedef T11 back;
0203     typedef v_iter< type,0 > begin;
0204     typedef v_iter< type,12 > end;
0205 };
0206 
0207 template<>
0208 struct push_front_impl< aux::vector_tag<11> >
0209 {
0210     template< typename Vector, typename T > struct apply
0211     {
0212         typedef vector12<
0213               T
0214               ,
0215               typename Vector::item0, typename Vector::item1
0216             , typename Vector::item2, typename Vector::item3
0217             , typename Vector::item4, typename Vector::item5
0218             , typename Vector::item6, typename Vector::item7
0219             , typename Vector::item8, typename Vector::item9
0220             , typename Vector::item10
0221             > type;
0222     };
0223 };
0224 
0225 template<>
0226 struct pop_front_impl< aux::vector_tag<12> >
0227 {
0228     template< typename Vector > struct apply
0229     {
0230         typedef vector11<
0231               typename Vector::item1, typename Vector::item2
0232             , typename Vector::item3, typename Vector::item4
0233             , typename Vector::item5, typename Vector::item6
0234             , typename Vector::item7, typename Vector::item8
0235             , typename Vector::item9, typename Vector::item10
0236             , typename Vector::item11
0237             > type;
0238     };
0239 };
0240 
0241 template<>
0242 struct push_back_impl< aux::vector_tag<11> >
0243 {
0244     template< typename Vector, typename T > struct apply
0245     {
0246         typedef vector12<
0247               typename Vector::item0, typename Vector::item1
0248             , typename Vector::item2, typename Vector::item3
0249             , typename Vector::item4, typename Vector::item5
0250             , typename Vector::item6, typename Vector::item7
0251             , typename Vector::item8, typename Vector::item9
0252             , typename Vector::item10
0253               ,
0254               T
0255             > type;
0256     };
0257 };
0258 
0259 template<>
0260 struct pop_back_impl< aux::vector_tag<12> >
0261 {
0262     template< typename Vector > struct apply
0263     {
0264         typedef vector11<
0265               typename Vector::item0, typename Vector::item1
0266             , typename Vector::item2, typename Vector::item3
0267             , typename Vector::item4, typename Vector::item5
0268             , typename Vector::item6, typename Vector::item7
0269             , typename Vector::item8, typename Vector::item9
0270             , typename Vector::item10
0271             > type;
0272     };
0273 };
0274 
0275 namespace aux {
0276 template<> struct v_at_impl<12>
0277 {
0278     template< typename V_ > struct result_
0279     {
0280         typedef typename V_::item12 type;
0281     };
0282 };
0283 
0284 }
0285 
0286 template<>
0287 struct at_impl< aux::vector_tag<12> >
0288 {
0289     template< typename V_, typename N > struct apply
0290     {
0291         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0292             ::template result_<V_>::type type;
0293     };
0294 };
0295 
0296 template<>
0297 struct front_impl< aux::vector_tag<12> >
0298 {
0299     template< typename Vector > struct apply
0300     {
0301         typedef typename Vector::item0 type;
0302     };
0303 };
0304 
0305 template<>
0306 struct back_impl< aux::vector_tag<12> >
0307 {
0308     template< typename Vector > struct apply
0309     {
0310         typedef typename Vector::back type;
0311     };
0312 };
0313 
0314 template<>
0315 struct empty_impl< aux::vector_tag<12> >
0316 {
0317     template< typename Vector > struct apply
0318         : false_
0319     {
0320     };
0321 };
0322 
0323 template<>
0324 struct size_impl< aux::vector_tag<12> >
0325 {
0326     template< typename Vector > struct apply
0327         : long_<12>
0328     {
0329     };
0330 };
0331 
0332 template<>
0333 struct O1_size_impl< aux::vector_tag<12> >
0334     : size_impl< aux::vector_tag<12> >
0335 {
0336 };
0337 
0338 template<>
0339 struct clear_impl< aux::vector_tag<12> >
0340 {
0341     template< typename Vector > struct apply
0342     {
0343         typedef vector0<> type;
0344     };
0345 };
0346 
0347 template<
0348       typename T0, typename T1, typename T2, typename T3, typename T4
0349     , typename T5, typename T6, typename T7, typename T8, typename T9
0350     , typename T10, typename T11, typename T12
0351     >
0352 struct vector13
0353 {
0354     typedef aux::vector_tag<13> tag;
0355     typedef vector13 type;
0356     typedef T0 item0;
0357     typedef T1 item1;
0358     typedef T2 item2;
0359     typedef T3 item3;
0360     typedef T4 item4;
0361     typedef T5 item5;
0362     typedef T6 item6;
0363     typedef T7 item7;
0364     typedef T8 item8;
0365     typedef T9 item9;
0366     typedef T10 item10;
0367     typedef T11 item11;
0368     typedef T12 item12;
0369     
0370 
0371     typedef void_ item13;
0372     typedef T12 back;
0373     typedef v_iter< type,0 > begin;
0374     typedef v_iter< type,13 > end;
0375 };
0376 
0377 template<>
0378 struct push_front_impl< aux::vector_tag<12> >
0379 {
0380     template< typename Vector, typename T > struct apply
0381     {
0382         typedef vector13<
0383               T
0384               ,
0385               typename Vector::item0, typename Vector::item1
0386             , typename Vector::item2, typename Vector::item3
0387             , typename Vector::item4, typename Vector::item5
0388             , typename Vector::item6, typename Vector::item7
0389             , typename Vector::item8, typename Vector::item9
0390             , typename Vector::item10, typename Vector::item11
0391             > type;
0392     };
0393 };
0394 
0395 template<>
0396 struct pop_front_impl< aux::vector_tag<13> >
0397 {
0398     template< typename Vector > struct apply
0399     {
0400         typedef vector12<
0401               typename Vector::item1, typename Vector::item2
0402             , typename Vector::item3, typename Vector::item4
0403             , typename Vector::item5, typename Vector::item6
0404             , typename Vector::item7, typename Vector::item8
0405             , typename Vector::item9, typename Vector::item10
0406             , typename Vector::item11, typename Vector::item12
0407             > type;
0408     };
0409 };
0410 
0411 template<>
0412 struct push_back_impl< aux::vector_tag<12> >
0413 {
0414     template< typename Vector, typename T > struct apply
0415     {
0416         typedef vector13<
0417               typename Vector::item0, typename Vector::item1
0418             , typename Vector::item2, typename Vector::item3
0419             , typename Vector::item4, typename Vector::item5
0420             , typename Vector::item6, typename Vector::item7
0421             , typename Vector::item8, typename Vector::item9
0422             , typename Vector::item10, typename Vector::item11
0423               ,
0424               T
0425             > type;
0426     };
0427 };
0428 
0429 template<>
0430 struct pop_back_impl< aux::vector_tag<13> >
0431 {
0432     template< typename Vector > struct apply
0433     {
0434         typedef vector12<
0435               typename Vector::item0, typename Vector::item1
0436             , typename Vector::item2, typename Vector::item3
0437             , typename Vector::item4, typename Vector::item5
0438             , typename Vector::item6, typename Vector::item7
0439             , typename Vector::item8, typename Vector::item9
0440             , typename Vector::item10, typename Vector::item11
0441             > type;
0442     };
0443 };
0444 
0445 namespace aux {
0446 template<> struct v_at_impl<13>
0447 {
0448     template< typename V_ > struct result_
0449     {
0450         typedef typename V_::item13 type;
0451     };
0452 };
0453 
0454 }
0455 
0456 template<>
0457 struct at_impl< aux::vector_tag<13> >
0458 {
0459     template< typename V_, typename N > struct apply
0460     {
0461         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0462             ::template result_<V_>::type type;
0463     };
0464 };
0465 
0466 template<>
0467 struct front_impl< aux::vector_tag<13> >
0468 {
0469     template< typename Vector > struct apply
0470     {
0471         typedef typename Vector::item0 type;
0472     };
0473 };
0474 
0475 template<>
0476 struct back_impl< aux::vector_tag<13> >
0477 {
0478     template< typename Vector > struct apply
0479     {
0480         typedef typename Vector::back type;
0481     };
0482 };
0483 
0484 template<>
0485 struct empty_impl< aux::vector_tag<13> >
0486 {
0487     template< typename Vector > struct apply
0488         : false_
0489     {
0490     };
0491 };
0492 
0493 template<>
0494 struct size_impl< aux::vector_tag<13> >
0495 {
0496     template< typename Vector > struct apply
0497         : long_<13>
0498     {
0499     };
0500 };
0501 
0502 template<>
0503 struct O1_size_impl< aux::vector_tag<13> >
0504     : size_impl< aux::vector_tag<13> >
0505 {
0506 };
0507 
0508 template<>
0509 struct clear_impl< aux::vector_tag<13> >
0510 {
0511     template< typename Vector > struct apply
0512     {
0513         typedef vector0<> type;
0514     };
0515 };
0516 
0517 template<
0518       typename T0, typename T1, typename T2, typename T3, typename T4
0519     , typename T5, typename T6, typename T7, typename T8, typename T9
0520     , typename T10, typename T11, typename T12, typename T13
0521     >
0522 struct vector14
0523 {
0524     typedef aux::vector_tag<14> tag;
0525     typedef vector14 type;
0526     typedef T0 item0;
0527     typedef T1 item1;
0528     typedef T2 item2;
0529     typedef T3 item3;
0530     typedef T4 item4;
0531     typedef T5 item5;
0532     typedef T6 item6;
0533     typedef T7 item7;
0534     typedef T8 item8;
0535     typedef T9 item9;
0536     typedef T10 item10;
0537     typedef T11 item11;
0538     typedef T12 item12;
0539     typedef T13 item13;
0540     
0541 
0542     typedef void_ item14;
0543     typedef T13 back;
0544     typedef v_iter< type,0 > begin;
0545     typedef v_iter< type,14 > end;
0546 };
0547 
0548 template<>
0549 struct push_front_impl< aux::vector_tag<13> >
0550 {
0551     template< typename Vector, typename T > struct apply
0552     {
0553         typedef vector14<
0554               T
0555               ,
0556               typename Vector::item0, typename Vector::item1
0557             , typename Vector::item2, typename Vector::item3
0558             , typename Vector::item4, typename Vector::item5
0559             , typename Vector::item6, typename Vector::item7
0560             , typename Vector::item8, typename Vector::item9
0561             , typename Vector::item10, typename Vector::item11
0562             , typename Vector::item12
0563             > type;
0564     };
0565 };
0566 
0567 template<>
0568 struct pop_front_impl< aux::vector_tag<14> >
0569 {
0570     template< typename Vector > struct apply
0571     {
0572         typedef vector13<
0573               typename Vector::item1, typename Vector::item2
0574             , typename Vector::item3, typename Vector::item4
0575             , typename Vector::item5, typename Vector::item6
0576             , typename Vector::item7, typename Vector::item8
0577             , typename Vector::item9, typename Vector::item10
0578             , typename Vector::item11, typename Vector::item12
0579             , typename Vector::item13
0580             > type;
0581     };
0582 };
0583 
0584 template<>
0585 struct push_back_impl< aux::vector_tag<13> >
0586 {
0587     template< typename Vector, typename T > struct apply
0588     {
0589         typedef vector14<
0590               typename Vector::item0, typename Vector::item1
0591             , typename Vector::item2, typename Vector::item3
0592             , typename Vector::item4, typename Vector::item5
0593             , typename Vector::item6, typename Vector::item7
0594             , typename Vector::item8, typename Vector::item9
0595             , typename Vector::item10, typename Vector::item11
0596             , typename Vector::item12
0597               ,
0598               T
0599             > type;
0600     };
0601 };
0602 
0603 template<>
0604 struct pop_back_impl< aux::vector_tag<14> >
0605 {
0606     template< typename Vector > struct apply
0607     {
0608         typedef vector13<
0609               typename Vector::item0, typename Vector::item1
0610             , typename Vector::item2, typename Vector::item3
0611             , typename Vector::item4, typename Vector::item5
0612             , typename Vector::item6, typename Vector::item7
0613             , typename Vector::item8, typename Vector::item9
0614             , typename Vector::item10, typename Vector::item11
0615             , typename Vector::item12
0616             > type;
0617     };
0618 };
0619 
0620 namespace aux {
0621 template<> struct v_at_impl<14>
0622 {
0623     template< typename V_ > struct result_
0624     {
0625         typedef typename V_::item14 type;
0626     };
0627 };
0628 
0629 }
0630 
0631 template<>
0632 struct at_impl< aux::vector_tag<14> >
0633 {
0634     template< typename V_, typename N > struct apply
0635     {
0636         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0637             ::template result_<V_>::type type;
0638     };
0639 };
0640 
0641 template<>
0642 struct front_impl< aux::vector_tag<14> >
0643 {
0644     template< typename Vector > struct apply
0645     {
0646         typedef typename Vector::item0 type;
0647     };
0648 };
0649 
0650 template<>
0651 struct back_impl< aux::vector_tag<14> >
0652 {
0653     template< typename Vector > struct apply
0654     {
0655         typedef typename Vector::back type;
0656     };
0657 };
0658 
0659 template<>
0660 struct empty_impl< aux::vector_tag<14> >
0661 {
0662     template< typename Vector > struct apply
0663         : false_
0664     {
0665     };
0666 };
0667 
0668 template<>
0669 struct size_impl< aux::vector_tag<14> >
0670 {
0671     template< typename Vector > struct apply
0672         : long_<14>
0673     {
0674     };
0675 };
0676 
0677 template<>
0678 struct O1_size_impl< aux::vector_tag<14> >
0679     : size_impl< aux::vector_tag<14> >
0680 {
0681 };
0682 
0683 template<>
0684 struct clear_impl< aux::vector_tag<14> >
0685 {
0686     template< typename Vector > struct apply
0687     {
0688         typedef vector0<> type;
0689     };
0690 };
0691 
0692 template<
0693       typename T0, typename T1, typename T2, typename T3, typename T4
0694     , typename T5, typename T6, typename T7, typename T8, typename T9
0695     , typename T10, typename T11, typename T12, typename T13, typename T14
0696     >
0697 struct vector15
0698 {
0699     typedef aux::vector_tag<15> tag;
0700     typedef vector15 type;
0701     typedef T0 item0;
0702     typedef T1 item1;
0703     typedef T2 item2;
0704     typedef T3 item3;
0705     typedef T4 item4;
0706     typedef T5 item5;
0707     typedef T6 item6;
0708     typedef T7 item7;
0709     typedef T8 item8;
0710     typedef T9 item9;
0711     typedef T10 item10;
0712     typedef T11 item11;
0713     typedef T12 item12;
0714     typedef T13 item13;
0715     typedef T14 item14;
0716     
0717 
0718     typedef void_ item15;
0719     typedef T14 back;
0720     typedef v_iter< type,0 > begin;
0721     typedef v_iter< type,15 > end;
0722 };
0723 
0724 template<>
0725 struct push_front_impl< aux::vector_tag<14> >
0726 {
0727     template< typename Vector, typename T > struct apply
0728     {
0729         typedef vector15<
0730               T
0731               ,
0732               typename Vector::item0, typename Vector::item1
0733             , typename Vector::item2, typename Vector::item3
0734             , typename Vector::item4, typename Vector::item5
0735             , typename Vector::item6, typename Vector::item7
0736             , typename Vector::item8, typename Vector::item9
0737             , typename Vector::item10, typename Vector::item11
0738             , typename Vector::item12, typename Vector::item13
0739             > type;
0740     };
0741 };
0742 
0743 template<>
0744 struct pop_front_impl< aux::vector_tag<15> >
0745 {
0746     template< typename Vector > struct apply
0747     {
0748         typedef vector14<
0749               typename Vector::item1, typename Vector::item2
0750             , typename Vector::item3, typename Vector::item4
0751             , typename Vector::item5, typename Vector::item6
0752             , typename Vector::item7, typename Vector::item8
0753             , typename Vector::item9, typename Vector::item10
0754             , typename Vector::item11, typename Vector::item12
0755             , typename Vector::item13, typename Vector::item14
0756             > type;
0757     };
0758 };
0759 
0760 template<>
0761 struct push_back_impl< aux::vector_tag<14> >
0762 {
0763     template< typename Vector, typename T > struct apply
0764     {
0765         typedef vector15<
0766               typename Vector::item0, typename Vector::item1
0767             , typename Vector::item2, typename Vector::item3
0768             , typename Vector::item4, typename Vector::item5
0769             , typename Vector::item6, typename Vector::item7
0770             , typename Vector::item8, typename Vector::item9
0771             , typename Vector::item10, typename Vector::item11
0772             , typename Vector::item12, typename Vector::item13
0773               ,
0774               T
0775             > type;
0776     };
0777 };
0778 
0779 template<>
0780 struct pop_back_impl< aux::vector_tag<15> >
0781 {
0782     template< typename Vector > struct apply
0783     {
0784         typedef vector14<
0785               typename Vector::item0, typename Vector::item1
0786             , typename Vector::item2, typename Vector::item3
0787             , typename Vector::item4, typename Vector::item5
0788             , typename Vector::item6, typename Vector::item7
0789             , typename Vector::item8, typename Vector::item9
0790             , typename Vector::item10, typename Vector::item11
0791             , typename Vector::item12, typename Vector::item13
0792             > type;
0793     };
0794 };
0795 
0796 namespace aux {
0797 template<> struct v_at_impl<15>
0798 {
0799     template< typename V_ > struct result_
0800     {
0801         typedef typename V_::item15 type;
0802     };
0803 };
0804 
0805 }
0806 
0807 template<>
0808 struct at_impl< aux::vector_tag<15> >
0809 {
0810     template< typename V_, typename N > struct apply
0811     {
0812         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0813             ::template result_<V_>::type type;
0814     };
0815 };
0816 
0817 template<>
0818 struct front_impl< aux::vector_tag<15> >
0819 {
0820     template< typename Vector > struct apply
0821     {
0822         typedef typename Vector::item0 type;
0823     };
0824 };
0825 
0826 template<>
0827 struct back_impl< aux::vector_tag<15> >
0828 {
0829     template< typename Vector > struct apply
0830     {
0831         typedef typename Vector::back type;
0832     };
0833 };
0834 
0835 template<>
0836 struct empty_impl< aux::vector_tag<15> >
0837 {
0838     template< typename Vector > struct apply
0839         : false_
0840     {
0841     };
0842 };
0843 
0844 template<>
0845 struct size_impl< aux::vector_tag<15> >
0846 {
0847     template< typename Vector > struct apply
0848         : long_<15>
0849     {
0850     };
0851 };
0852 
0853 template<>
0854 struct O1_size_impl< aux::vector_tag<15> >
0855     : size_impl< aux::vector_tag<15> >
0856 {
0857 };
0858 
0859 template<>
0860 struct clear_impl< aux::vector_tag<15> >
0861 {
0862     template< typename Vector > struct apply
0863     {
0864         typedef vector0<> type;
0865     };
0866 };
0867 
0868 template<
0869       typename T0, typename T1, typename T2, typename T3, typename T4
0870     , typename T5, typename T6, typename T7, typename T8, typename T9
0871     , typename T10, typename T11, typename T12, typename T13, typename T14
0872     , typename T15
0873     >
0874 struct vector16
0875 {
0876     typedef aux::vector_tag<16> tag;
0877     typedef vector16 type;
0878     typedef T0 item0;
0879     typedef T1 item1;
0880     typedef T2 item2;
0881     typedef T3 item3;
0882     typedef T4 item4;
0883     typedef T5 item5;
0884     typedef T6 item6;
0885     typedef T7 item7;
0886     typedef T8 item8;
0887     typedef T9 item9;
0888     typedef T10 item10;
0889     typedef T11 item11;
0890     typedef T12 item12;
0891     typedef T13 item13;
0892     typedef T14 item14;
0893     typedef T15 item15;
0894     
0895 
0896     typedef void_ item16;
0897     typedef T15 back;
0898     typedef v_iter< type,0 > begin;
0899     typedef v_iter< type,16 > end;
0900 };
0901 
0902 template<>
0903 struct push_front_impl< aux::vector_tag<15> >
0904 {
0905     template< typename Vector, typename T > struct apply
0906     {
0907         typedef vector16<
0908               T
0909               ,
0910               typename Vector::item0, typename Vector::item1
0911             , typename Vector::item2, typename Vector::item3
0912             , typename Vector::item4, typename Vector::item5
0913             , typename Vector::item6, typename Vector::item7
0914             , typename Vector::item8, typename Vector::item9
0915             , typename Vector::item10, typename Vector::item11
0916             , typename Vector::item12, typename Vector::item13
0917             , typename Vector::item14
0918             > type;
0919     };
0920 };
0921 
0922 template<>
0923 struct pop_front_impl< aux::vector_tag<16> >
0924 {
0925     template< typename Vector > struct apply
0926     {
0927         typedef vector15<
0928               typename Vector::item1, typename Vector::item2
0929             , typename Vector::item3, typename Vector::item4
0930             , typename Vector::item5, typename Vector::item6
0931             , typename Vector::item7, typename Vector::item8
0932             , typename Vector::item9, typename Vector::item10
0933             , typename Vector::item11, typename Vector::item12
0934             , typename Vector::item13, typename Vector::item14
0935             , typename Vector::item15
0936             > type;
0937     };
0938 };
0939 
0940 template<>
0941 struct push_back_impl< aux::vector_tag<15> >
0942 {
0943     template< typename Vector, typename T > struct apply
0944     {
0945         typedef vector16<
0946               typename Vector::item0, typename Vector::item1
0947             , typename Vector::item2, typename Vector::item3
0948             , typename Vector::item4, typename Vector::item5
0949             , typename Vector::item6, typename Vector::item7
0950             , typename Vector::item8, typename Vector::item9
0951             , typename Vector::item10, typename Vector::item11
0952             , typename Vector::item12, typename Vector::item13
0953             , typename Vector::item14
0954               ,
0955               T
0956             > type;
0957     };
0958 };
0959 
0960 template<>
0961 struct pop_back_impl< aux::vector_tag<16> >
0962 {
0963     template< typename Vector > struct apply
0964     {
0965         typedef vector15<
0966               typename Vector::item0, typename Vector::item1
0967             , typename Vector::item2, typename Vector::item3
0968             , typename Vector::item4, typename Vector::item5
0969             , typename Vector::item6, typename Vector::item7
0970             , typename Vector::item8, typename Vector::item9
0971             , typename Vector::item10, typename Vector::item11
0972             , typename Vector::item12, typename Vector::item13
0973             , typename Vector::item14
0974             > type;
0975     };
0976 };
0977 
0978 namespace aux {
0979 template<> struct v_at_impl<16>
0980 {
0981     template< typename V_ > struct result_
0982     {
0983         typedef typename V_::item16 type;
0984     };
0985 };
0986 
0987 }
0988 
0989 template<>
0990 struct at_impl< aux::vector_tag<16> >
0991 {
0992     template< typename V_, typename N > struct apply
0993     {
0994         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0995             ::template result_<V_>::type type;
0996     };
0997 };
0998 
0999 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 }}