Back to home page

EIC code displayed by LXR

 
 

    


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

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/vector40.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, typename T11, typename T12, typename T13, typename T14
0018     , typename T15, typename T16, typename T17, typename T18, typename T19
0019     , typename T20, typename T21, typename T22, typename T23, typename T24
0020     , typename T25, typename T26, typename T27, typename T28, typename T29
0021     , typename T30
0022     >
0023 struct vector31
0024 {
0025     typedef aux::vector_tag<31> tag;
0026     typedef vector31 type;
0027     typedef T0 item0;
0028     typedef T1 item1;
0029     typedef T2 item2;
0030     typedef T3 item3;
0031     typedef T4 item4;
0032     typedef T5 item5;
0033     typedef T6 item6;
0034     typedef T7 item7;
0035     typedef T8 item8;
0036     typedef T9 item9;
0037     typedef T10 item10;
0038     typedef T11 item11;
0039     typedef T12 item12;
0040     typedef T13 item13;
0041     typedef T14 item14;
0042     typedef T15 item15;
0043     typedef T16 item16;
0044     typedef T17 item17;
0045     typedef T18 item18;
0046     typedef T19 item19;
0047     typedef T20 item20;
0048     typedef T21 item21;
0049     typedef T22 item22;
0050     typedef T23 item23;
0051     typedef T24 item24;
0052     typedef T25 item25;
0053     typedef T26 item26;
0054     typedef T27 item27;
0055     typedef T28 item28;
0056     typedef T29 item29;
0057     typedef T30 item30;
0058     
0059 
0060     typedef void_ item31;
0061     typedef T30 back;
0062     typedef v_iter< type,0 > begin;
0063     typedef v_iter< type,31 > end;
0064 };
0065 
0066 template<>
0067 struct push_front_impl< aux::vector_tag<30> >
0068 {
0069     template< typename Vector, typename T > struct apply
0070     {
0071         typedef vector31<
0072               T
0073               ,
0074               typename Vector::item0, typename Vector::item1
0075             , typename Vector::item2, typename Vector::item3
0076             , typename Vector::item4, typename Vector::item5
0077             , typename Vector::item6, typename Vector::item7
0078             , typename Vector::item8, typename Vector::item9
0079             , typename Vector::item10, typename Vector::item11
0080             , typename Vector::item12, typename Vector::item13
0081             , typename Vector::item14, typename Vector::item15
0082             , typename Vector::item16, typename Vector::item17
0083             , typename Vector::item18, typename Vector::item19
0084             , typename Vector::item20, typename Vector::item21
0085             , typename Vector::item22, typename Vector::item23
0086             , typename Vector::item24, typename Vector::item25
0087             , typename Vector::item26, typename Vector::item27
0088             , typename Vector::item28, typename Vector::item29
0089             > type;
0090     };
0091 };
0092 
0093 template<>
0094 struct pop_front_impl< aux::vector_tag<31> >
0095 {
0096     template< typename Vector > struct apply
0097     {
0098         typedef vector30<
0099               typename Vector::item1, typename Vector::item2
0100             , typename Vector::item3, typename Vector::item4
0101             , typename Vector::item5, typename Vector::item6
0102             , typename Vector::item7, typename Vector::item8
0103             , typename Vector::item9, typename Vector::item10
0104             , typename Vector::item11, typename Vector::item12
0105             , typename Vector::item13, typename Vector::item14
0106             , typename Vector::item15, typename Vector::item16
0107             , typename Vector::item17, typename Vector::item18
0108             , typename Vector::item19, typename Vector::item20
0109             , typename Vector::item21, typename Vector::item22
0110             , typename Vector::item23, typename Vector::item24
0111             , typename Vector::item25, typename Vector::item26
0112             , typename Vector::item27, typename Vector::item28
0113             , typename Vector::item29, typename Vector::item30
0114             > type;
0115     };
0116 };
0117 
0118 template<>
0119 struct push_back_impl< aux::vector_tag<30> >
0120 {
0121     template< typename Vector, typename T > struct apply
0122     {
0123         typedef vector31<
0124               typename Vector::item0, typename Vector::item1
0125             , typename Vector::item2, typename Vector::item3
0126             , typename Vector::item4, typename Vector::item5
0127             , typename Vector::item6, typename Vector::item7
0128             , typename Vector::item8, typename Vector::item9
0129             , typename Vector::item10, typename Vector::item11
0130             , typename Vector::item12, typename Vector::item13
0131             , typename Vector::item14, typename Vector::item15
0132             , typename Vector::item16, typename Vector::item17
0133             , typename Vector::item18, typename Vector::item19
0134             , typename Vector::item20, typename Vector::item21
0135             , typename Vector::item22, typename Vector::item23
0136             , typename Vector::item24, typename Vector::item25
0137             , typename Vector::item26, typename Vector::item27
0138             , typename Vector::item28, typename Vector::item29
0139               ,
0140               T
0141             > type;
0142     };
0143 };
0144 
0145 template<>
0146 struct pop_back_impl< aux::vector_tag<31> >
0147 {
0148     template< typename Vector > struct apply
0149     {
0150         typedef vector30<
0151               typename Vector::item0, typename Vector::item1
0152             , typename Vector::item2, typename Vector::item3
0153             , typename Vector::item4, typename Vector::item5
0154             , typename Vector::item6, typename Vector::item7
0155             , typename Vector::item8, typename Vector::item9
0156             , typename Vector::item10, typename Vector::item11
0157             , typename Vector::item12, typename Vector::item13
0158             , typename Vector::item14, typename Vector::item15
0159             , typename Vector::item16, typename Vector::item17
0160             , typename Vector::item18, typename Vector::item19
0161             , typename Vector::item20, typename Vector::item21
0162             , typename Vector::item22, typename Vector::item23
0163             , typename Vector::item24, typename Vector::item25
0164             , typename Vector::item26, typename Vector::item27
0165             , typename Vector::item28, typename Vector::item29
0166             > type;
0167     };
0168 };
0169 
0170 namespace aux {
0171 template<> struct v_at_impl<31>
0172 {
0173     template< typename V_ > struct result_
0174     {
0175         typedef typename V_::item31 type;
0176     };
0177 };
0178 
0179 }
0180 
0181 template<>
0182 struct at_impl< aux::vector_tag<31> >
0183 {
0184     template< typename V_, typename N > struct apply
0185     {
0186         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0187             ::template result_<V_>::type type;
0188     };
0189 };
0190 
0191 template<>
0192 struct front_impl< aux::vector_tag<31> >
0193 {
0194     template< typename Vector > struct apply
0195     {
0196         typedef typename Vector::item0 type;
0197     };
0198 };
0199 
0200 template<>
0201 struct back_impl< aux::vector_tag<31> >
0202 {
0203     template< typename Vector > struct apply
0204     {
0205         typedef typename Vector::back type;
0206     };
0207 };
0208 
0209 template<>
0210 struct empty_impl< aux::vector_tag<31> >
0211 {
0212     template< typename Vector > struct apply
0213         : false_
0214     {
0215     };
0216 };
0217 
0218 template<>
0219 struct size_impl< aux::vector_tag<31> >
0220 {
0221     template< typename Vector > struct apply
0222         : long_<31>
0223     {
0224     };
0225 };
0226 
0227 template<>
0228 struct O1_size_impl< aux::vector_tag<31> >
0229     : size_impl< aux::vector_tag<31> >
0230 {
0231 };
0232 
0233 template<>
0234 struct clear_impl< aux::vector_tag<31> >
0235 {
0236     template< typename Vector > struct apply
0237     {
0238         typedef vector0<> type;
0239     };
0240 };
0241 
0242 template<
0243       typename T0, typename T1, typename T2, typename T3, typename T4
0244     , typename T5, typename T6, typename T7, typename T8, typename T9
0245     , typename T10, typename T11, typename T12, typename T13, typename T14
0246     , typename T15, typename T16, typename T17, typename T18, typename T19
0247     , typename T20, typename T21, typename T22, typename T23, typename T24
0248     , typename T25, typename T26, typename T27, typename T28, typename T29
0249     , typename T30, typename T31
0250     >
0251 struct vector32
0252 {
0253     typedef aux::vector_tag<32> tag;
0254     typedef vector32 type;
0255     typedef T0 item0;
0256     typedef T1 item1;
0257     typedef T2 item2;
0258     typedef T3 item3;
0259     typedef T4 item4;
0260     typedef T5 item5;
0261     typedef T6 item6;
0262     typedef T7 item7;
0263     typedef T8 item8;
0264     typedef T9 item9;
0265     typedef T10 item10;
0266     typedef T11 item11;
0267     typedef T12 item12;
0268     typedef T13 item13;
0269     typedef T14 item14;
0270     typedef T15 item15;
0271     typedef T16 item16;
0272     typedef T17 item17;
0273     typedef T18 item18;
0274     typedef T19 item19;
0275     typedef T20 item20;
0276     typedef T21 item21;
0277     typedef T22 item22;
0278     typedef T23 item23;
0279     typedef T24 item24;
0280     typedef T25 item25;
0281     typedef T26 item26;
0282     typedef T27 item27;
0283     typedef T28 item28;
0284     typedef T29 item29;
0285     typedef T30 item30;
0286     typedef T31 item31;
0287     
0288 
0289     typedef void_ item32;
0290     typedef T31 back;
0291     typedef v_iter< type,0 > begin;
0292     typedef v_iter< type,32 > end;
0293 };
0294 
0295 template<>
0296 struct push_front_impl< aux::vector_tag<31> >
0297 {
0298     template< typename Vector, typename T > struct apply
0299     {
0300         typedef vector32<
0301               T
0302               ,
0303               typename Vector::item0, typename Vector::item1
0304             , typename Vector::item2, typename Vector::item3
0305             , typename Vector::item4, typename Vector::item5
0306             , typename Vector::item6, typename Vector::item7
0307             , typename Vector::item8, typename Vector::item9
0308             , typename Vector::item10, typename Vector::item11
0309             , typename Vector::item12, typename Vector::item13
0310             , typename Vector::item14, typename Vector::item15
0311             , typename Vector::item16, typename Vector::item17
0312             , typename Vector::item18, typename Vector::item19
0313             , typename Vector::item20, typename Vector::item21
0314             , typename Vector::item22, typename Vector::item23
0315             , typename Vector::item24, typename Vector::item25
0316             , typename Vector::item26, typename Vector::item27
0317             , typename Vector::item28, typename Vector::item29
0318             , typename Vector::item30
0319             > type;
0320     };
0321 };
0322 
0323 template<>
0324 struct pop_front_impl< aux::vector_tag<32> >
0325 {
0326     template< typename Vector > struct apply
0327     {
0328         typedef vector31<
0329               typename Vector::item1, typename Vector::item2
0330             , typename Vector::item3, typename Vector::item4
0331             , typename Vector::item5, typename Vector::item6
0332             , typename Vector::item7, typename Vector::item8
0333             , typename Vector::item9, typename Vector::item10
0334             , typename Vector::item11, typename Vector::item12
0335             , typename Vector::item13, typename Vector::item14
0336             , typename Vector::item15, typename Vector::item16
0337             , typename Vector::item17, typename Vector::item18
0338             , typename Vector::item19, typename Vector::item20
0339             , typename Vector::item21, typename Vector::item22
0340             , typename Vector::item23, typename Vector::item24
0341             , typename Vector::item25, typename Vector::item26
0342             , typename Vector::item27, typename Vector::item28
0343             , typename Vector::item29, typename Vector::item30
0344             , typename Vector::item31
0345             > type;
0346     };
0347 };
0348 
0349 template<>
0350 struct push_back_impl< aux::vector_tag<31> >
0351 {
0352     template< typename Vector, typename T > struct apply
0353     {
0354         typedef vector32<
0355               typename Vector::item0, typename Vector::item1
0356             , typename Vector::item2, typename Vector::item3
0357             , typename Vector::item4, typename Vector::item5
0358             , typename Vector::item6, typename Vector::item7
0359             , typename Vector::item8, typename Vector::item9
0360             , typename Vector::item10, typename Vector::item11
0361             , typename Vector::item12, typename Vector::item13
0362             , typename Vector::item14, typename Vector::item15
0363             , typename Vector::item16, typename Vector::item17
0364             , typename Vector::item18, typename Vector::item19
0365             , typename Vector::item20, typename Vector::item21
0366             , typename Vector::item22, typename Vector::item23
0367             , typename Vector::item24, typename Vector::item25
0368             , typename Vector::item26, typename Vector::item27
0369             , typename Vector::item28, typename Vector::item29
0370             , typename Vector::item30
0371               ,
0372               T
0373             > type;
0374     };
0375 };
0376 
0377 template<>
0378 struct pop_back_impl< aux::vector_tag<32> >
0379 {
0380     template< typename Vector > struct apply
0381     {
0382         typedef vector31<
0383               typename Vector::item0, typename Vector::item1
0384             , typename Vector::item2, typename Vector::item3
0385             , typename Vector::item4, typename Vector::item5
0386             , typename Vector::item6, typename Vector::item7
0387             , typename Vector::item8, typename Vector::item9
0388             , typename Vector::item10, typename Vector::item11
0389             , typename Vector::item12, typename Vector::item13
0390             , typename Vector::item14, typename Vector::item15
0391             , typename Vector::item16, typename Vector::item17
0392             , typename Vector::item18, typename Vector::item19
0393             , typename Vector::item20, typename Vector::item21
0394             , typename Vector::item22, typename Vector::item23
0395             , typename Vector::item24, typename Vector::item25
0396             , typename Vector::item26, typename Vector::item27
0397             , typename Vector::item28, typename Vector::item29
0398             , typename Vector::item30
0399             > type;
0400     };
0401 };
0402 
0403 namespace aux {
0404 template<> struct v_at_impl<32>
0405 {
0406     template< typename V_ > struct result_
0407     {
0408         typedef typename V_::item32 type;
0409     };
0410 };
0411 
0412 }
0413 
0414 template<>
0415 struct at_impl< aux::vector_tag<32> >
0416 {
0417     template< typename V_, typename N > struct apply
0418     {
0419         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0420             ::template result_<V_>::type type;
0421     };
0422 };
0423 
0424 template<>
0425 struct front_impl< aux::vector_tag<32> >
0426 {
0427     template< typename Vector > struct apply
0428     {
0429         typedef typename Vector::item0 type;
0430     };
0431 };
0432 
0433 template<>
0434 struct back_impl< aux::vector_tag<32> >
0435 {
0436     template< typename Vector > struct apply
0437     {
0438         typedef typename Vector::back type;
0439     };
0440 };
0441 
0442 template<>
0443 struct empty_impl< aux::vector_tag<32> >
0444 {
0445     template< typename Vector > struct apply
0446         : false_
0447     {
0448     };
0449 };
0450 
0451 template<>
0452 struct size_impl< aux::vector_tag<32> >
0453 {
0454     template< typename Vector > struct apply
0455         : long_<32>
0456     {
0457     };
0458 };
0459 
0460 template<>
0461 struct O1_size_impl< aux::vector_tag<32> >
0462     : size_impl< aux::vector_tag<32> >
0463 {
0464 };
0465 
0466 template<>
0467 struct clear_impl< aux::vector_tag<32> >
0468 {
0469     template< typename Vector > struct apply
0470     {
0471         typedef vector0<> type;
0472     };
0473 };
0474 
0475 template<
0476       typename T0, typename T1, typename T2, typename T3, typename T4
0477     , typename T5, typename T6, typename T7, typename T8, typename T9
0478     , typename T10, typename T11, typename T12, typename T13, typename T14
0479     , typename T15, typename T16, typename T17, typename T18, typename T19
0480     , typename T20, typename T21, typename T22, typename T23, typename T24
0481     , typename T25, typename T26, typename T27, typename T28, typename T29
0482     , typename T30, typename T31, typename T32
0483     >
0484 struct vector33
0485 {
0486     typedef aux::vector_tag<33> tag;
0487     typedef vector33 type;
0488     typedef T0 item0;
0489     typedef T1 item1;
0490     typedef T2 item2;
0491     typedef T3 item3;
0492     typedef T4 item4;
0493     typedef T5 item5;
0494     typedef T6 item6;
0495     typedef T7 item7;
0496     typedef T8 item8;
0497     typedef T9 item9;
0498     typedef T10 item10;
0499     typedef T11 item11;
0500     typedef T12 item12;
0501     typedef T13 item13;
0502     typedef T14 item14;
0503     typedef T15 item15;
0504     typedef T16 item16;
0505     typedef T17 item17;
0506     typedef T18 item18;
0507     typedef T19 item19;
0508     typedef T20 item20;
0509     typedef T21 item21;
0510     typedef T22 item22;
0511     typedef T23 item23;
0512     typedef T24 item24;
0513     typedef T25 item25;
0514     typedef T26 item26;
0515     typedef T27 item27;
0516     typedef T28 item28;
0517     typedef T29 item29;
0518     typedef T30 item30;
0519     typedef T31 item31;
0520     typedef T32 item32;
0521     
0522 
0523     typedef void_ item33;
0524     typedef T32 back;
0525     typedef v_iter< type,0 > begin;
0526     typedef v_iter< type,33 > end;
0527 };
0528 
0529 template<>
0530 struct push_front_impl< aux::vector_tag<32> >
0531 {
0532     template< typename Vector, typename T > struct apply
0533     {
0534         typedef vector33<
0535               T
0536               ,
0537               typename Vector::item0, typename Vector::item1
0538             , typename Vector::item2, typename Vector::item3
0539             , typename Vector::item4, typename Vector::item5
0540             , typename Vector::item6, typename Vector::item7
0541             , typename Vector::item8, typename Vector::item9
0542             , typename Vector::item10, typename Vector::item11
0543             , typename Vector::item12, typename Vector::item13
0544             , typename Vector::item14, typename Vector::item15
0545             , typename Vector::item16, typename Vector::item17
0546             , typename Vector::item18, typename Vector::item19
0547             , typename Vector::item20, typename Vector::item21
0548             , typename Vector::item22, typename Vector::item23
0549             , typename Vector::item24, typename Vector::item25
0550             , typename Vector::item26, typename Vector::item27
0551             , typename Vector::item28, typename Vector::item29
0552             , typename Vector::item30, typename Vector::item31
0553             > type;
0554     };
0555 };
0556 
0557 template<>
0558 struct pop_front_impl< aux::vector_tag<33> >
0559 {
0560     template< typename Vector > struct apply
0561     {
0562         typedef vector32<
0563               typename Vector::item1, typename Vector::item2
0564             , typename Vector::item3, typename Vector::item4
0565             , typename Vector::item5, typename Vector::item6
0566             , typename Vector::item7, typename Vector::item8
0567             , typename Vector::item9, typename Vector::item10
0568             , typename Vector::item11, typename Vector::item12
0569             , typename Vector::item13, typename Vector::item14
0570             , typename Vector::item15, typename Vector::item16
0571             , typename Vector::item17, typename Vector::item18
0572             , typename Vector::item19, typename Vector::item20
0573             , typename Vector::item21, typename Vector::item22
0574             , typename Vector::item23, typename Vector::item24
0575             , typename Vector::item25, typename Vector::item26
0576             , typename Vector::item27, typename Vector::item28
0577             , typename Vector::item29, typename Vector::item30
0578             , typename Vector::item31, typename Vector::item32
0579             > type;
0580     };
0581 };
0582 
0583 template<>
0584 struct push_back_impl< aux::vector_tag<32> >
0585 {
0586     template< typename Vector, typename T > struct apply
0587     {
0588         typedef vector33<
0589               typename Vector::item0, typename Vector::item1
0590             , typename Vector::item2, typename Vector::item3
0591             , typename Vector::item4, typename Vector::item5
0592             , typename Vector::item6, typename Vector::item7
0593             , typename Vector::item8, typename Vector::item9
0594             , typename Vector::item10, typename Vector::item11
0595             , typename Vector::item12, typename Vector::item13
0596             , typename Vector::item14, typename Vector::item15
0597             , typename Vector::item16, typename Vector::item17
0598             , typename Vector::item18, typename Vector::item19
0599             , typename Vector::item20, typename Vector::item21
0600             , typename Vector::item22, typename Vector::item23
0601             , typename Vector::item24, typename Vector::item25
0602             , typename Vector::item26, typename Vector::item27
0603             , typename Vector::item28, typename Vector::item29
0604             , typename Vector::item30, typename Vector::item31
0605               ,
0606               T
0607             > type;
0608     };
0609 };
0610 
0611 template<>
0612 struct pop_back_impl< aux::vector_tag<33> >
0613 {
0614     template< typename Vector > struct apply
0615     {
0616         typedef vector32<
0617               typename Vector::item0, typename Vector::item1
0618             , typename Vector::item2, typename Vector::item3
0619             , typename Vector::item4, typename Vector::item5
0620             , typename Vector::item6, typename Vector::item7
0621             , typename Vector::item8, typename Vector::item9
0622             , typename Vector::item10, typename Vector::item11
0623             , typename Vector::item12, typename Vector::item13
0624             , typename Vector::item14, typename Vector::item15
0625             , typename Vector::item16, typename Vector::item17
0626             , typename Vector::item18, typename Vector::item19
0627             , typename Vector::item20, typename Vector::item21
0628             , typename Vector::item22, typename Vector::item23
0629             , typename Vector::item24, typename Vector::item25
0630             , typename Vector::item26, typename Vector::item27
0631             , typename Vector::item28, typename Vector::item29
0632             , typename Vector::item30, typename Vector::item31
0633             > type;
0634     };
0635 };
0636 
0637 namespace aux {
0638 template<> struct v_at_impl<33>
0639 {
0640     template< typename V_ > struct result_
0641     {
0642         typedef typename V_::item33 type;
0643     };
0644 };
0645 
0646 }
0647 
0648 template<>
0649 struct at_impl< aux::vector_tag<33> >
0650 {
0651     template< typename V_, typename N > struct apply
0652     {
0653         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0654             ::template result_<V_>::type type;
0655     };
0656 };
0657 
0658 template<>
0659 struct front_impl< aux::vector_tag<33> >
0660 {
0661     template< typename Vector > struct apply
0662     {
0663         typedef typename Vector::item0 type;
0664     };
0665 };
0666 
0667 template<>
0668 struct back_impl< aux::vector_tag<33> >
0669 {
0670     template< typename Vector > struct apply
0671     {
0672         typedef typename Vector::back type;
0673     };
0674 };
0675 
0676 template<>
0677 struct empty_impl< aux::vector_tag<33> >
0678 {
0679     template< typename Vector > struct apply
0680         : false_
0681     {
0682     };
0683 };
0684 
0685 template<>
0686 struct size_impl< aux::vector_tag<33> >
0687 {
0688     template< typename Vector > struct apply
0689         : long_<33>
0690     {
0691     };
0692 };
0693 
0694 template<>
0695 struct O1_size_impl< aux::vector_tag<33> >
0696     : size_impl< aux::vector_tag<33> >
0697 {
0698 };
0699 
0700 template<>
0701 struct clear_impl< aux::vector_tag<33> >
0702 {
0703     template< typename Vector > struct apply
0704     {
0705         typedef vector0<> type;
0706     };
0707 };
0708 
0709 template<
0710       typename T0, typename T1, typename T2, typename T3, typename T4
0711     , typename T5, typename T6, typename T7, typename T8, typename T9
0712     , typename T10, typename T11, typename T12, typename T13, typename T14
0713     , typename T15, typename T16, typename T17, typename T18, typename T19
0714     , typename T20, typename T21, typename T22, typename T23, typename T24
0715     , typename T25, typename T26, typename T27, typename T28, typename T29
0716     , typename T30, typename T31, typename T32, typename T33
0717     >
0718 struct vector34
0719 {
0720     typedef aux::vector_tag<34> tag;
0721     typedef vector34 type;
0722     typedef T0 item0;
0723     typedef T1 item1;
0724     typedef T2 item2;
0725     typedef T3 item3;
0726     typedef T4 item4;
0727     typedef T5 item5;
0728     typedef T6 item6;
0729     typedef T7 item7;
0730     typedef T8 item8;
0731     typedef T9 item9;
0732     typedef T10 item10;
0733     typedef T11 item11;
0734     typedef T12 item12;
0735     typedef T13 item13;
0736     typedef T14 item14;
0737     typedef T15 item15;
0738     typedef T16 item16;
0739     typedef T17 item17;
0740     typedef T18 item18;
0741     typedef T19 item19;
0742     typedef T20 item20;
0743     typedef T21 item21;
0744     typedef T22 item22;
0745     typedef T23 item23;
0746     typedef T24 item24;
0747     typedef T25 item25;
0748     typedef T26 item26;
0749     typedef T27 item27;
0750     typedef T28 item28;
0751     typedef T29 item29;
0752     typedef T30 item30;
0753     typedef T31 item31;
0754     typedef T32 item32;
0755     typedef T33 item33;
0756     
0757 
0758     typedef void_ item34;
0759     typedef T33 back;
0760     typedef v_iter< type,0 > begin;
0761     typedef v_iter< type,34 > end;
0762 };
0763 
0764 template<>
0765 struct push_front_impl< aux::vector_tag<33> >
0766 {
0767     template< typename Vector, typename T > struct apply
0768     {
0769         typedef vector34<
0770               T
0771               ,
0772               typename Vector::item0, typename Vector::item1
0773             , typename Vector::item2, typename Vector::item3
0774             , typename Vector::item4, typename Vector::item5
0775             , typename Vector::item6, typename Vector::item7
0776             , typename Vector::item8, typename Vector::item9
0777             , typename Vector::item10, typename Vector::item11
0778             , typename Vector::item12, typename Vector::item13
0779             , typename Vector::item14, typename Vector::item15
0780             , typename Vector::item16, typename Vector::item17
0781             , typename Vector::item18, typename Vector::item19
0782             , typename Vector::item20, typename Vector::item21
0783             , typename Vector::item22, typename Vector::item23
0784             , typename Vector::item24, typename Vector::item25
0785             , typename Vector::item26, typename Vector::item27
0786             , typename Vector::item28, typename Vector::item29
0787             , typename Vector::item30, typename Vector::item31
0788             , typename Vector::item32
0789             > type;
0790     };
0791 };
0792 
0793 template<>
0794 struct pop_front_impl< aux::vector_tag<34> >
0795 {
0796     template< typename Vector > struct apply
0797     {
0798         typedef vector33<
0799               typename Vector::item1, typename Vector::item2
0800             , typename Vector::item3, typename Vector::item4
0801             , typename Vector::item5, typename Vector::item6
0802             , typename Vector::item7, typename Vector::item8
0803             , typename Vector::item9, typename Vector::item10
0804             , typename Vector::item11, typename Vector::item12
0805             , typename Vector::item13, typename Vector::item14
0806             , typename Vector::item15, typename Vector::item16
0807             , typename Vector::item17, typename Vector::item18
0808             , typename Vector::item19, typename Vector::item20
0809             , typename Vector::item21, typename Vector::item22
0810             , typename Vector::item23, typename Vector::item24
0811             , typename Vector::item25, typename Vector::item26
0812             , typename Vector::item27, typename Vector::item28
0813             , typename Vector::item29, typename Vector::item30
0814             , typename Vector::item31, typename Vector::item32
0815             , typename Vector::item33
0816             > type;
0817     };
0818 };
0819 
0820 template<>
0821 struct push_back_impl< aux::vector_tag<33> >
0822 {
0823     template< typename Vector, typename T > struct apply
0824     {
0825         typedef vector34<
0826               typename Vector::item0, typename Vector::item1
0827             , typename Vector::item2, typename Vector::item3
0828             , typename Vector::item4, typename Vector::item5
0829             , typename Vector::item6, typename Vector::item7
0830             , typename Vector::item8, typename Vector::item9
0831             , typename Vector::item10, typename Vector::item11
0832             , typename Vector::item12, typename Vector::item13
0833             , typename Vector::item14, typename Vector::item15
0834             , typename Vector::item16, typename Vector::item17
0835             , typename Vector::item18, typename Vector::item19
0836             , typename Vector::item20, typename Vector::item21
0837             , typename Vector::item22, typename Vector::item23
0838             , typename Vector::item24, typename Vector::item25
0839             , typename Vector::item26, typename Vector::item27
0840             , typename Vector::item28, typename Vector::item29
0841             , typename Vector::item30, typename Vector::item31
0842             , typename Vector::item32
0843               ,
0844               T
0845             > type;
0846     };
0847 };
0848 
0849 template<>
0850 struct pop_back_impl< aux::vector_tag<34> >
0851 {
0852     template< typename Vector > struct apply
0853     {
0854         typedef vector33<
0855               typename Vector::item0, typename Vector::item1
0856             , typename Vector::item2, typename Vector::item3
0857             , typename Vector::item4, typename Vector::item5
0858             , typename Vector::item6, typename Vector::item7
0859             , typename Vector::item8, typename Vector::item9
0860             , typename Vector::item10, typename Vector::item11
0861             , typename Vector::item12, typename Vector::item13
0862             , typename Vector::item14, typename Vector::item15
0863             , typename Vector::item16, typename Vector::item17
0864             , typename Vector::item18, typename Vector::item19
0865             , typename Vector::item20, typename Vector::item21
0866             , typename Vector::item22, typename Vector::item23
0867             , typename Vector::item24, typename Vector::item25
0868             , typename Vector::item26, typename Vector::item27
0869             , typename Vector::item28, typename Vector::item29
0870             , typename Vector::item30, typename Vector::item31
0871             , typename Vector::item32
0872             > type;
0873     };
0874 };
0875 
0876 namespace aux {
0877 template<> struct v_at_impl<34>
0878 {
0879     template< typename V_ > struct result_
0880     {
0881         typedef typename V_::item34 type;
0882     };
0883 };
0884 
0885 }
0886 
0887 template<>
0888 struct at_impl< aux::vector_tag<34> >
0889 {
0890     template< typename V_, typename N > struct apply
0891     {
0892         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
0893             ::template result_<V_>::type type;
0894     };
0895 };
0896 
0897 template<>
0898 struct front_impl< aux::vector_tag<34> >
0899 {
0900     template< typename Vector > struct apply
0901     {
0902         typedef typename Vector::item0 type;
0903     };
0904 };
0905 
0906 template<>
0907 struct back_impl< aux::vector_tag<34> >
0908 {
0909     template< typename Vector > struct apply
0910     {
0911         typedef typename Vector::back type;
0912     };
0913 };
0914 
0915 template<>
0916 struct empty_impl< aux::vector_tag<34> >
0917 {
0918     template< typename Vector > struct apply
0919         : false_
0920     {
0921     };
0922 };
0923 
0924 template<>
0925 struct size_impl< aux::vector_tag<34> >
0926 {
0927     template< typename Vector > struct apply
0928         : long_<34>
0929     {
0930     };
0931 };
0932 
0933 template<>
0934 struct O1_size_impl< aux::vector_tag<34> >
0935     : size_impl< aux::vector_tag<34> >
0936 {
0937 };
0938 
0939 template<>
0940 struct clear_impl< aux::vector_tag<34> >
0941 {
0942     template< typename Vector > struct apply
0943     {
0944         typedef vector0<> type;
0945     };
0946 };
0947 
0948 template<
0949       typename T0, typename T1, typename T2, typename T3, typename T4
0950     , typename T5, typename T6, typename T7, typename T8, typename T9
0951     , typename T10, typename T11, typename T12, typename T13, typename T14
0952     , typename T15, typename T16, typename T17, typename T18, typename T19
0953     , typename T20, typename T21, typename T22, typename T23, typename T24
0954     , typename T25, typename T26, typename T27, typename T28, typename T29
0955     , typename T30, typename T31, typename T32, typename T33, typename T34
0956     >
0957 struct vector35
0958 {
0959     typedef aux::vector_tag<35> tag;
0960     typedef vector35 type;
0961     typedef T0 item0;
0962     typedef T1 item1;
0963     typedef T2 item2;
0964     typedef T3 item3;
0965     typedef T4 item4;
0966     typedef T5 item5;
0967     typedef T6 item6;
0968     typedef T7 item7;
0969     typedef T8 item8;
0970     typedef T9 item9;
0971     typedef T10 item10;
0972     typedef T11 item11;
0973     typedef T12 item12;
0974     typedef T13 item13;
0975     typedef T14 item14;
0976     typedef T15 item15;
0977     typedef T16 item16;
0978     typedef T17 item17;
0979     typedef T18 item18;
0980     typedef T19 item19;
0981     typedef T20 item20;
0982     typedef T21 item21;
0983     typedef T22 item22;
0984     typedef T23 item23;
0985     typedef T24 item24;
0986     typedef T25 item25;
0987     typedef T26 item26;
0988     typedef T27 item27;
0989     typedef T28 item28;
0990     typedef T29 item29;
0991     typedef T30 item30;
0992     typedef T31 item31;
0993     typedef T32 item32;
0994     typedef T33 item33;
0995     typedef T34 item34;
0996     
0997 
0998     typedef void_ item35;
0999     typedef T34 back;
1000     typedef v_iter< type,0 > begin;
1001     typedef v_iter< type,35 > end;
1002 };
1003 
1004 template<>
1005 struct push_front_impl< aux::vector_tag<34> >
1006 {
1007     template< typename Vector, typename T > struct apply
1008     {
1009         typedef vector35<
1010               T
1011               ,
1012               typename Vector::item0, typename Vector::item1
1013             , typename Vector::item2, typename Vector::item3
1014             , typename Vector::item4, typename Vector::item5
1015             , typename Vector::item6, typename Vector::item7
1016             , typename Vector::item8, typename Vector::item9
1017             , typename Vector::item10, typename Vector::item11
1018             , typename Vector::item12, typename Vector::item13
1019             , typename Vector::item14, typename Vector::item15
1020             , typename Vector::item16, typename Vector::item17
1021             , typename Vector::item18, typename Vector::item19
1022             , typename Vector::item20, typename Vector::item21
1023             , typename Vector::item22, typename Vector::item23
1024             , typename Vector::item24, typename Vector::item25
1025             , typename Vector::item26, typename Vector::item27
1026             , typename Vector::item28, typename Vector::item29
1027             , typename Vector::item30, typename Vector::item31
1028             , typename Vector::item32, typename Vector::item33
1029             > type;
1030     };
1031 };
1032 
1033 template<>
1034 struct pop_front_impl< aux::vector_tag<35> >
1035 {
1036     template< typename Vector > struct apply
1037     {
1038         typedef vector34<
1039               typename Vector::item1, typename Vector::item2
1040             , typename Vector::item3, typename Vector::item4
1041             , typename Vector::item5, typename Vector::item6
1042             , typename Vector::item7, typename Vector::item8
1043             , typename Vector::item9, typename Vector::item10
1044             , typename Vector::item11, typename Vector::item12
1045             , typename Vector::item13, typename Vector::item14
1046             , typename Vector::item15, typename Vector::item16
1047             , typename Vector::item17, typename Vector::item18
1048             , typename Vector::item19, typename Vector::item20
1049             , typename Vector::item21, typename Vector::item22
1050             , typename Vector::item23, typename Vector::item24
1051             , typename Vector::item25, typename Vector::item26
1052             , typename Vector::item27, typename Vector::item28
1053             , typename Vector::item29, typename Vector::item30
1054             , typename Vector::item31, typename Vector::item32
1055             , typename Vector::item33, typename Vector::item34
1056             > type;
1057     };
1058 };
1059 
1060 template<>
1061 struct push_back_impl< aux::vector_tag<34> >
1062 {
1063     template< typename Vector, typename T > struct apply
1064     {
1065         typedef vector35<
1066               typename Vector::item0, typename Vector::item1
1067             , typename Vector::item2, typename Vector::item3
1068             , typename Vector::item4, typename Vector::item5
1069             , typename Vector::item6, typename Vector::item7
1070             , typename Vector::item8, typename Vector::item9
1071             , typename Vector::item10, typename Vector::item11
1072             , typename Vector::item12, typename Vector::item13
1073             , typename Vector::item14, typename Vector::item15
1074             , typename Vector::item16, typename Vector::item17
1075             , typename Vector::item18, typename Vector::item19
1076             , typename Vector::item20, typename Vector::item21
1077             , typename Vector::item22, typename Vector::item23
1078             , typename Vector::item24, typename Vector::item25
1079             , typename Vector::item26, typename Vector::item27
1080             , typename Vector::item28, typename Vector::item29
1081             , typename Vector::item30, typename Vector::item31
1082             , typename Vector::item32, typename Vector::item33
1083               ,
1084               T
1085             > type;
1086     };
1087 };
1088 
1089 template<>
1090 struct pop_back_impl< aux::vector_tag<35> >
1091 {
1092     template< typename Vector > struct apply
1093     {
1094         typedef vector34<
1095               typename Vector::item0, typename Vector::item1
1096             , typename Vector::item2, typename Vector::item3
1097             , typename Vector::item4, typename Vector::item5
1098             , typename Vector::item6, typename Vector::item7
1099             , typename Vector::item8, typename Vector::item9
1100             , typename Vector::item10, typename Vector::item11
1101             , typename Vector::item12, typename Vector::item13
1102             , typename Vector::item14, typename Vector::item15
1103             , typename Vector::item16, typename Vector::item17
1104             , typename Vector::item18, typename Vector::item19
1105             , typename Vector::item20, typename Vector::item21
1106             , typename Vector::item22, typename Vector::item23
1107             , typename Vector::item24, typename Vector::item25
1108             , typename Vector::item26, typename Vector::item27
1109             , typename Vector::item28, typename Vector::item29
1110             , typename Vector::item30, typename Vector::item31
1111             , typename Vector::item32, typename Vector::item33
1112             > type;
1113     };
1114 };
1115 
1116 namespace aux {
1117 template<> struct v_at_impl<35>
1118 {
1119     template< typename V_ > struct result_
1120     {
1121         typedef typename V_::item35 type;
1122     };
1123 };
1124 
1125 }
1126 
1127 template<>
1128 struct at_impl< aux::vector_tag<35> >
1129 {
1130     template< typename V_, typename N > struct apply
1131     {
1132         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1133             ::template result_<V_>::type type;
1134     };
1135 };
1136 
1137 template<>
1138 struct front_impl< aux::vector_tag<35> >
1139 {
1140     template< typename Vector > struct apply
1141     {
1142         typedef typename Vector::item0 type;
1143     };
1144 };
1145 
1146 template<>
1147 struct back_impl< aux::vector_tag<35> >
1148 {
1149     template< typename Vector > struct apply
1150     {
1151         typedef typename Vector::back type;
1152     };
1153 };
1154 
1155 template<>
1156 struct empty_impl< aux::vector_tag<35> >
1157 {
1158     template< typename Vector > struct apply
1159         : false_
1160     {
1161     };
1162 };
1163 
1164 template<>
1165 struct size_impl< aux::vector_tag<35> >
1166 {
1167     template< typename Vector > struct apply
1168         : long_<35>
1169     {
1170     };
1171 };
1172 
1173 template<>
1174 struct O1_size_impl< aux::vector_tag<35> >
1175     : size_impl< aux::vector_tag<35> >
1176 {
1177 };
1178 
1179 template<>
1180 struct clear_impl< aux::vector_tag<35> >
1181 {
1182     template< typename Vector > struct apply
1183     {
1184         typedef vector0<> type;
1185     };
1186 };
1187 
1188 template<
1189       typename T0, typename T1, typename T2, typename T3, typename T4
1190     , typename T5, typename T6, typename T7, typename T8, typename T9
1191     , typename T10, typename T11, typename T12, typename T13, typename T14
1192     , typename T15, typename T16, typename T17, typename T18, typename T19
1193     , typename T20, typename T21, typename T22, typename T23, typename T24
1194     , typename T25, typename T26, typename T27, typename T28, typename T29
1195     , typename T30, typename T31, typename T32, typename T33, typename T34
1196     , typename T35
1197     >
1198 struct vector36
1199 {
1200     typedef aux::vector_tag<36> tag;
1201     typedef vector36 type;
1202     typedef T0 item0;
1203     typedef T1 item1;
1204     typedef T2 item2;
1205     typedef T3 item3;
1206     typedef T4 item4;
1207     typedef T5 item5;
1208     typedef T6 item6;
1209     typedef T7 item7;
1210     typedef T8 item8;
1211     typedef T9 item9;
1212     typedef T10 item10;
1213     typedef T11 item11;
1214     typedef T12 item12;
1215     typedef T13 item13;
1216     typedef T14 item14;
1217     typedef T15 item15;
1218     typedef T16 item16;
1219     typedef T17 item17;
1220     typedef T18 item18;
1221     typedef T19 item19;
1222     typedef T20 item20;
1223     typedef T21 item21;
1224     typedef T22 item22;
1225     typedef T23 item23;
1226     typedef T24 item24;
1227     typedef T25 item25;
1228     typedef T26 item26;
1229     typedef T27 item27;
1230     typedef T28 item28;
1231     typedef T29 item29;
1232     typedef T30 item30;
1233     typedef T31 item31;
1234     typedef T32 item32;
1235     typedef T33 item33;
1236     typedef T34 item34;
1237     typedef T35 item35;
1238     
1239 
1240     typedef void_ item36;
1241     typedef T35 back;
1242     typedef v_iter< type,0 > begin;
1243     typedef v_iter< type,36 > end;
1244 };
1245 
1246 template<>
1247 struct push_front_impl< aux::vector_tag<35> >
1248 {
1249     template< typename Vector, typename T > struct apply
1250     {
1251         typedef vector36<
1252               T
1253               ,
1254               typename Vector::item0, typename Vector::item1
1255             , typename Vector::item2, typename Vector::item3
1256             , typename Vector::item4, typename Vector::item5
1257             , typename Vector::item6, typename Vector::item7
1258             , typename Vector::item8, typename Vector::item9
1259             , typename Vector::item10, typename Vector::item11
1260             , typename Vector::item12, typename Vector::item13
1261             , typename Vector::item14, typename Vector::item15
1262             , typename Vector::item16, typename Vector::item17
1263             , typename Vector::item18, typename Vector::item19
1264             , typename Vector::item20, typename Vector::item21
1265             , typename Vector::item22, typename Vector::item23
1266             , typename Vector::item24, typename Vector::item25
1267             , typename Vector::item26, typename Vector::item27
1268             , typename Vector::item28, typename Vector::item29
1269             , typename Vector::item30, typename Vector::item31
1270             , typename Vector::item32, typename Vector::item33
1271             , typename Vector::item34
1272             > type;
1273     };
1274 };
1275 
1276 template<>
1277 struct pop_front_impl< aux::vector_tag<36> >
1278 {
1279     template< typename Vector > struct apply
1280     {
1281         typedef vector35<
1282               typename Vector::item1, typename Vector::item2
1283             , typename Vector::item3, typename Vector::item4
1284             , typename Vector::item5, typename Vector::item6
1285             , typename Vector::item7, typename Vector::item8
1286             , typename Vector::item9, typename Vector::item10
1287             , typename Vector::item11, typename Vector::item12
1288             , typename Vector::item13, typename Vector::item14
1289             , typename Vector::item15, typename Vector::item16
1290             , typename Vector::item17, typename Vector::item18
1291             , typename Vector::item19, typename Vector::item20
1292             , typename Vector::item21, typename Vector::item22
1293             , typename Vector::item23, typename Vector::item24
1294             , typename Vector::item25, typename Vector::item26
1295             , typename Vector::item27, typename Vector::item28
1296             , typename Vector::item29, typename Vector::item30
1297             , typename Vector::item31, typename Vector::item32
1298             , typename Vector::item33, typename Vector::item34
1299             , typename Vector::item35
1300             > type;
1301     };
1302 };
1303 
1304 template<>
1305 struct push_back_impl< aux::vector_tag<35> >
1306 {
1307     template< typename Vector, typename T > struct apply
1308     {
1309         typedef vector36<
1310               typename Vector::item0, typename Vector::item1
1311             , typename Vector::item2, typename Vector::item3
1312             , typename Vector::item4, typename Vector::item5
1313             , typename Vector::item6, typename Vector::item7
1314             , typename Vector::item8, typename Vector::item9
1315             , typename Vector::item10, typename Vector::item11
1316             , typename Vector::item12, typename Vector::item13
1317             , typename Vector::item14, typename Vector::item15
1318             , typename Vector::item16, typename Vector::item17
1319             , typename Vector::item18, typename Vector::item19
1320             , typename Vector::item20, typename Vector::item21
1321             , typename Vector::item22, typename Vector::item23
1322             , typename Vector::item24, typename Vector::item25
1323             , typename Vector::item26, typename Vector::item27
1324             , typename Vector::item28, typename Vector::item29
1325             , typename Vector::item30, typename Vector::item31
1326             , typename Vector::item32, typename Vector::item33
1327             , typename Vector::item34
1328               ,
1329               T
1330             > type;
1331     };
1332 };
1333 
1334 template<>
1335 struct pop_back_impl< aux::vector_tag<36> >
1336 {
1337     template< typename Vector > struct apply
1338     {
1339         typedef vector35<
1340               typename Vector::item0, typename Vector::item1
1341             , typename Vector::item2, typename Vector::item3
1342             , typename Vector::item4, typename Vector::item5
1343             , typename Vector::item6, typename Vector::item7
1344             , typename Vector::item8, typename Vector::item9
1345             , typename Vector::item10, typename Vector::item11
1346             , typename Vector::item12, typename Vector::item13
1347             , typename Vector::item14, typename Vector::item15
1348             , typename Vector::item16, typename Vector::item17
1349             , typename Vector::item18, typename Vector::item19
1350             , typename Vector::item20, typename Vector::item21
1351             , typename Vector::item22, typename Vector::item23
1352             , typename Vector::item24, typename Vector::item25
1353             , typename Vector::item26, typename Vector::item27
1354             , typename Vector::item28, typename Vector::item29
1355             , typename Vector::item30, typename Vector::item31
1356             , typename Vector::item32, typename Vector::item33
1357             , typename Vector::item34
1358             > type;
1359     };
1360 };
1361 
1362 namespace aux {
1363 template<> struct v_at_impl<36>
1364 {
1365     template< typename V_ > struct result_
1366     {
1367         typedef typename V_::item36 type;
1368     };
1369 };
1370 
1371 }
1372 
1373 template<>
1374 struct at_impl< aux::vector_tag<36> >
1375 {
1376     template< typename V_, typename N > struct apply
1377     {
1378         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1379             ::template result_<V_>::type type;
1380     };
1381 };
1382 
1383 template<>
1384 struct front_impl< aux::vector_tag<36> >
1385 {
1386     template< typename Vector > struct apply
1387     {
1388         typedef typename Vector::item0 type;
1389     };
1390 };
1391 
1392 template<>
1393 struct back_impl< aux::vector_tag<36> >
1394 {
1395     template< typename Vector > struct apply
1396     {
1397         typedef typename Vector::back type;
1398     };
1399 };
1400 
1401 template<>
1402 struct empty_impl< aux::vector_tag<36> >
1403 {
1404     template< typename Vector > struct apply
1405         : false_
1406     {
1407     };
1408 };
1409 
1410 template<>
1411 struct size_impl< aux::vector_tag<36> >
1412 {
1413     template< typename Vector > struct apply
1414         : long_<36>
1415     {
1416     };
1417 };
1418 
1419 template<>
1420 struct O1_size_impl< aux::vector_tag<36> >
1421     : size_impl< aux::vector_tag<36> >
1422 {
1423 };
1424 
1425 template<>
1426 struct clear_impl< aux::vector_tag<36> >
1427 {
1428     template< typename Vector > struct apply
1429     {
1430         typedef vector0<> type;
1431     };
1432 };
1433 
1434 template<
1435       typename T0, typename T1, typename T2, typename T3, typename T4
1436     , typename T5, typename T6, typename T7, typename T8, typename T9
1437     , typename T10, typename T11, typename T12, typename T13, typename T14
1438     , typename T15, typename T16, typename T17, typename T18, typename T19
1439     , typename T20, typename T21, typename T22, typename T23, typename T24
1440     , typename T25, typename T26, typename T27, typename T28, typename T29
1441     , typename T30, typename T31, typename T32, typename T33, typename T34
1442     , typename T35, typename T36
1443     >
1444 struct vector37
1445 {
1446     typedef aux::vector_tag<37> tag;
1447     typedef vector37 type;
1448     typedef T0 item0;
1449     typedef T1 item1;
1450     typedef T2 item2;
1451     typedef T3 item3;
1452     typedef T4 item4;
1453     typedef T5 item5;
1454     typedef T6 item6;
1455     typedef T7 item7;
1456     typedef T8 item8;
1457     typedef T9 item9;
1458     typedef T10 item10;
1459     typedef T11 item11;
1460     typedef T12 item12;
1461     typedef T13 item13;
1462     typedef T14 item14;
1463     typedef T15 item15;
1464     typedef T16 item16;
1465     typedef T17 item17;
1466     typedef T18 item18;
1467     typedef T19 item19;
1468     typedef T20 item20;
1469     typedef T21 item21;
1470     typedef T22 item22;
1471     typedef T23 item23;
1472     typedef T24 item24;
1473     typedef T25 item25;
1474     typedef T26 item26;
1475     typedef T27 item27;
1476     typedef T28 item28;
1477     typedef T29 item29;
1478     typedef T30 item30;
1479     typedef T31 item31;
1480     typedef T32 item32;
1481     typedef T33 item33;
1482     typedef T34 item34;
1483     typedef T35 item35;
1484     typedef T36 item36;
1485     
1486 
1487     typedef void_ item37;
1488     typedef T36 back;
1489     typedef v_iter< type,0 > begin;
1490     typedef v_iter< type,37 > end;
1491 };
1492 
1493 template<>
1494 struct push_front_impl< aux::vector_tag<36> >
1495 {
1496     template< typename Vector, typename T > struct apply
1497     {
1498         typedef vector37<
1499               T
1500               ,
1501               typename Vector::item0, typename Vector::item1
1502             , typename Vector::item2, typename Vector::item3
1503             , typename Vector::item4, typename Vector::item5
1504             , typename Vector::item6, typename Vector::item7
1505             , typename Vector::item8, typename Vector::item9
1506             , typename Vector::item10, typename Vector::item11
1507             , typename Vector::item12, typename Vector::item13
1508             , typename Vector::item14, typename Vector::item15
1509             , typename Vector::item16, typename Vector::item17
1510             , typename Vector::item18, typename Vector::item19
1511             , typename Vector::item20, typename Vector::item21
1512             , typename Vector::item22, typename Vector::item23
1513             , typename Vector::item24, typename Vector::item25
1514             , typename Vector::item26, typename Vector::item27
1515             , typename Vector::item28, typename Vector::item29
1516             , typename Vector::item30, typename Vector::item31
1517             , typename Vector::item32, typename Vector::item33
1518             , typename Vector::item34, typename Vector::item35
1519             > type;
1520     };
1521 };
1522 
1523 template<>
1524 struct pop_front_impl< aux::vector_tag<37> >
1525 {
1526     template< typename Vector > struct apply
1527     {
1528         typedef vector36<
1529               typename Vector::item1, typename Vector::item2
1530             , typename Vector::item3, typename Vector::item4
1531             , typename Vector::item5, typename Vector::item6
1532             , typename Vector::item7, typename Vector::item8
1533             , typename Vector::item9, typename Vector::item10
1534             , typename Vector::item11, typename Vector::item12
1535             , typename Vector::item13, typename Vector::item14
1536             , typename Vector::item15, typename Vector::item16
1537             , typename Vector::item17, typename Vector::item18
1538             , typename Vector::item19, typename Vector::item20
1539             , typename Vector::item21, typename Vector::item22
1540             , typename Vector::item23, typename Vector::item24
1541             , typename Vector::item25, typename Vector::item26
1542             , typename Vector::item27, typename Vector::item28
1543             , typename Vector::item29, typename Vector::item30
1544             , typename Vector::item31, typename Vector::item32
1545             , typename Vector::item33, typename Vector::item34
1546             , typename Vector::item35, typename Vector::item36
1547             > type;
1548     };
1549 };
1550 
1551 template<>
1552 struct push_back_impl< aux::vector_tag<36> >
1553 {
1554     template< typename Vector, typename T > struct apply
1555     {
1556         typedef vector37<
1557               typename Vector::item0, typename Vector::item1
1558             , typename Vector::item2, typename Vector::item3
1559             , typename Vector::item4, typename Vector::item5
1560             , typename Vector::item6, typename Vector::item7
1561             , typename Vector::item8, typename Vector::item9
1562             , typename Vector::item10, typename Vector::item11
1563             , typename Vector::item12, typename Vector::item13
1564             , typename Vector::item14, typename Vector::item15
1565             , typename Vector::item16, typename Vector::item17
1566             , typename Vector::item18, typename Vector::item19
1567             , typename Vector::item20, typename Vector::item21
1568             , typename Vector::item22, typename Vector::item23
1569             , typename Vector::item24, typename Vector::item25
1570             , typename Vector::item26, typename Vector::item27
1571             , typename Vector::item28, typename Vector::item29
1572             , typename Vector::item30, typename Vector::item31
1573             , typename Vector::item32, typename Vector::item33
1574             , typename Vector::item34, typename Vector::item35
1575               ,
1576               T
1577             > type;
1578     };
1579 };
1580 
1581 template<>
1582 struct pop_back_impl< aux::vector_tag<37> >
1583 {
1584     template< typename Vector > struct apply
1585     {
1586         typedef vector36<
1587               typename Vector::item0, typename Vector::item1
1588             , typename Vector::item2, typename Vector::item3
1589             , typename Vector::item4, typename Vector::item5
1590             , typename Vector::item6, typename Vector::item7
1591             , typename Vector::item8, typename Vector::item9
1592             , typename Vector::item10, typename Vector::item11
1593             , typename Vector::item12, typename Vector::item13
1594             , typename Vector::item14, typename Vector::item15
1595             , typename Vector::item16, typename Vector::item17
1596             , typename Vector::item18, typename Vector::item19
1597             , typename Vector::item20, typename Vector::item21
1598             , typename Vector::item22, typename Vector::item23
1599             , typename Vector::item24, typename Vector::item25
1600             , typename Vector::item26, typename Vector::item27
1601             , typename Vector::item28, typename Vector::item29
1602             , typename Vector::item30, typename Vector::item31
1603             , typename Vector::item32, typename Vector::item33
1604             , typename Vector::item34, typename Vector::item35
1605             > type;
1606     };
1607 };
1608 
1609 namespace aux {
1610 template<> struct v_at_impl<37>
1611 {
1612     template< typename V_ > struct result_
1613     {
1614         typedef typename V_::item37 type;
1615     };
1616 };
1617 
1618 }
1619 
1620 template<>
1621 struct at_impl< aux::vector_tag<37> >
1622 {
1623     template< typename V_, typename N > struct apply
1624     {
1625         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1626             ::template result_<V_>::type type;
1627     };
1628 };
1629 
1630 template<>
1631 struct front_impl< aux::vector_tag<37> >
1632 {
1633     template< typename Vector > struct apply
1634     {
1635         typedef typename Vector::item0 type;
1636     };
1637 };
1638 
1639 template<>
1640 struct back_impl< aux::vector_tag<37> >
1641 {
1642     template< typename Vector > struct apply
1643     {
1644         typedef typename Vector::back type;
1645     };
1646 };
1647 
1648 template<>
1649 struct empty_impl< aux::vector_tag<37> >
1650 {
1651     template< typename Vector > struct apply
1652         : false_
1653     {
1654     };
1655 };
1656 
1657 template<>
1658 struct size_impl< aux::vector_tag<37> >
1659 {
1660     template< typename Vector > struct apply
1661         : long_<37>
1662     {
1663     };
1664 };
1665 
1666 template<>
1667 struct O1_size_impl< aux::vector_tag<37> >
1668     : size_impl< aux::vector_tag<37> >
1669 {
1670 };
1671 
1672 template<>
1673 struct clear_impl< aux::vector_tag<37> >
1674 {
1675     template< typename Vector > struct apply
1676     {
1677         typedef vector0<> type;
1678     };
1679 };
1680 
1681 template<
1682       typename T0, typename T1, typename T2, typename T3, typename T4
1683     , typename T5, typename T6, typename T7, typename T8, typename T9
1684     , typename T10, typename T11, typename T12, typename T13, typename T14
1685     , typename T15, typename T16, typename T17, typename T18, typename T19
1686     , typename T20, typename T21, typename T22, typename T23, typename T24
1687     , typename T25, typename T26, typename T27, typename T28, typename T29
1688     , typename T30, typename T31, typename T32, typename T33, typename T34
1689     , typename T35, typename T36, typename T37
1690     >
1691 struct vector38
1692 {
1693     typedef aux::vector_tag<38> tag;
1694     typedef vector38 type;
1695     typedef T0 item0;
1696     typedef T1 item1;
1697     typedef T2 item2;
1698     typedef T3 item3;
1699     typedef T4 item4;
1700     typedef T5 item5;
1701     typedef T6 item6;
1702     typedef T7 item7;
1703     typedef T8 item8;
1704     typedef T9 item9;
1705     typedef T10 item10;
1706     typedef T11 item11;
1707     typedef T12 item12;
1708     typedef T13 item13;
1709     typedef T14 item14;
1710     typedef T15 item15;
1711     typedef T16 item16;
1712     typedef T17 item17;
1713     typedef T18 item18;
1714     typedef T19 item19;
1715     typedef T20 item20;
1716     typedef T21 item21;
1717     typedef T22 item22;
1718     typedef T23 item23;
1719     typedef T24 item24;
1720     typedef T25 item25;
1721     typedef T26 item26;
1722     typedef T27 item27;
1723     typedef T28 item28;
1724     typedef T29 item29;
1725     typedef T30 item30;
1726     typedef T31 item31;
1727     typedef T32 item32;
1728     typedef T33 item33;
1729     typedef T34 item34;
1730     typedef T35 item35;
1731     typedef T36 item36;
1732     typedef T37 item37;
1733     
1734 
1735     typedef void_ item38;
1736     typedef T37 back;
1737     typedef v_iter< type,0 > begin;
1738     typedef v_iter< type,38 > end;
1739 };
1740 
1741 template<>
1742 struct push_front_impl< aux::vector_tag<37> >
1743 {
1744     template< typename Vector, typename T > struct apply
1745     {
1746         typedef vector38<
1747               T
1748               ,
1749               typename Vector::item0, typename Vector::item1
1750             , typename Vector::item2, typename Vector::item3
1751             , typename Vector::item4, typename Vector::item5
1752             , typename Vector::item6, typename Vector::item7
1753             , typename Vector::item8, typename Vector::item9
1754             , typename Vector::item10, typename Vector::item11
1755             , typename Vector::item12, typename Vector::item13
1756             , typename Vector::item14, typename Vector::item15
1757             , typename Vector::item16, typename Vector::item17
1758             , typename Vector::item18, typename Vector::item19
1759             , typename Vector::item20, typename Vector::item21
1760             , typename Vector::item22, typename Vector::item23
1761             , typename Vector::item24, typename Vector::item25
1762             , typename Vector::item26, typename Vector::item27
1763             , typename Vector::item28, typename Vector::item29
1764             , typename Vector::item30, typename Vector::item31
1765             , typename Vector::item32, typename Vector::item33
1766             , typename Vector::item34, typename Vector::item35
1767             , typename Vector::item36
1768             > type;
1769     };
1770 };
1771 
1772 template<>
1773 struct pop_front_impl< aux::vector_tag<38> >
1774 {
1775     template< typename Vector > struct apply
1776     {
1777         typedef vector37<
1778               typename Vector::item1, typename Vector::item2
1779             , typename Vector::item3, typename Vector::item4
1780             , typename Vector::item5, typename Vector::item6
1781             , typename Vector::item7, typename Vector::item8
1782             , typename Vector::item9, typename Vector::item10
1783             , typename Vector::item11, typename Vector::item12
1784             , typename Vector::item13, typename Vector::item14
1785             , typename Vector::item15, typename Vector::item16
1786             , typename Vector::item17, typename Vector::item18
1787             , typename Vector::item19, typename Vector::item20
1788             , typename Vector::item21, typename Vector::item22
1789             , typename Vector::item23, typename Vector::item24
1790             , typename Vector::item25, typename Vector::item26
1791             , typename Vector::item27, typename Vector::item28
1792             , typename Vector::item29, typename Vector::item30
1793             , typename Vector::item31, typename Vector::item32
1794             , typename Vector::item33, typename Vector::item34
1795             , typename Vector::item35, typename Vector::item36
1796             , typename Vector::item37
1797             > type;
1798     };
1799 };
1800 
1801 template<>
1802 struct push_back_impl< aux::vector_tag<37> >
1803 {
1804     template< typename Vector, typename T > struct apply
1805     {
1806         typedef vector38<
1807               typename Vector::item0, typename Vector::item1
1808             , typename Vector::item2, typename Vector::item3
1809             , typename Vector::item4, typename Vector::item5
1810             , typename Vector::item6, typename Vector::item7
1811             , typename Vector::item8, typename Vector::item9
1812             , typename Vector::item10, typename Vector::item11
1813             , typename Vector::item12, typename Vector::item13
1814             , typename Vector::item14, typename Vector::item15
1815             , typename Vector::item16, typename Vector::item17
1816             , typename Vector::item18, typename Vector::item19
1817             , typename Vector::item20, typename Vector::item21
1818             , typename Vector::item22, typename Vector::item23
1819             , typename Vector::item24, typename Vector::item25
1820             , typename Vector::item26, typename Vector::item27
1821             , typename Vector::item28, typename Vector::item29
1822             , typename Vector::item30, typename Vector::item31
1823             , typename Vector::item32, typename Vector::item33
1824             , typename Vector::item34, typename Vector::item35
1825             , typename Vector::item36
1826               ,
1827               T
1828             > type;
1829     };
1830 };
1831 
1832 template<>
1833 struct pop_back_impl< aux::vector_tag<38> >
1834 {
1835     template< typename Vector > struct apply
1836     {
1837         typedef vector37<
1838               typename Vector::item0, typename Vector::item1
1839             , typename Vector::item2, typename Vector::item3
1840             , typename Vector::item4, typename Vector::item5
1841             , typename Vector::item6, typename Vector::item7
1842             , typename Vector::item8, typename Vector::item9
1843             , typename Vector::item10, typename Vector::item11
1844             , typename Vector::item12, typename Vector::item13
1845             , typename Vector::item14, typename Vector::item15
1846             , typename Vector::item16, typename Vector::item17
1847             , typename Vector::item18, typename Vector::item19
1848             , typename Vector::item20, typename Vector::item21
1849             , typename Vector::item22, typename Vector::item23
1850             , typename Vector::item24, typename Vector::item25
1851             , typename Vector::item26, typename Vector::item27
1852             , typename Vector::item28, typename Vector::item29
1853             , typename Vector::item30, typename Vector::item31
1854             , typename Vector::item32, typename Vector::item33
1855             , typename Vector::item34, typename Vector::item35
1856             , typename Vector::item36
1857             > type;
1858     };
1859 };
1860 
1861 namespace aux {
1862 template<> struct v_at_impl<38>
1863 {
1864     template< typename V_ > struct result_
1865     {
1866         typedef typename V_::item38 type;
1867     };
1868 };
1869 
1870 }
1871 
1872 template<>
1873 struct at_impl< aux::vector_tag<38> >
1874 {
1875     template< typename V_, typename N > struct apply
1876     {
1877         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1878             ::template result_<V_>::type type;
1879     };
1880 };
1881 
1882 template<>
1883 struct front_impl< aux::vector_tag<38> >
1884 {
1885     template< typename Vector > struct apply
1886     {
1887         typedef typename Vector::item0 type;
1888     };
1889 };
1890 
1891 template<>
1892 struct back_impl< aux::vector_tag<38> >
1893 {
1894     template< typename Vector > struct apply
1895     {
1896         typedef typename Vector::back type;
1897     };
1898 };
1899 
1900 template<>
1901 struct empty_impl< aux::vector_tag<38> >
1902 {
1903     template< typename Vector > struct apply
1904         : false_
1905     {
1906     };
1907 };
1908 
1909 template<>
1910 struct size_impl< aux::vector_tag<38> >
1911 {
1912     template< typename Vector > struct apply
1913         : long_<38>
1914     {
1915     };
1916 };
1917 
1918 template<>
1919 struct O1_size_impl< aux::vector_tag<38> >
1920     : size_impl< aux::vector_tag<38> >
1921 {
1922 };
1923 
1924 template<>
1925 struct clear_impl< aux::vector_tag<38> >
1926 {
1927     template< typename Vector > struct apply
1928     {
1929         typedef vector0<> type;
1930     };
1931 };
1932 
1933 template<
1934       typename T0, typename T1, typename T2, typename T3, typename T4
1935     , typename T5, typename T6, typename T7, typename T8, typename T9
1936     , typename T10, typename T11, typename T12, typename T13, typename T14
1937     , typename T15, typename T16, typename T17, typename T18, typename T19
1938     , typename T20, typename T21, typename T22, typename T23, typename T24
1939     , typename T25, typename T26, typename T27, typename T28, typename T29
1940     , typename T30, typename T31, typename T32, typename T33, typename T34
1941     , typename T35, typename T36, typename T37, typename T38
1942     >
1943 struct vector39
1944 {
1945     typedef aux::vector_tag<39> tag;
1946     typedef vector39 type;
1947     typedef T0 item0;
1948     typedef T1 item1;
1949     typedef T2 item2;
1950     typedef T3 item3;
1951     typedef T4 item4;
1952     typedef T5 item5;
1953     typedef T6 item6;
1954     typedef T7 item7;
1955     typedef T8 item8;
1956     typedef T9 item9;
1957     typedef T10 item10;
1958     typedef T11 item11;
1959     typedef T12 item12;
1960     typedef T13 item13;
1961     typedef T14 item14;
1962     typedef T15 item15;
1963     typedef T16 item16;
1964     typedef T17 item17;
1965     typedef T18 item18;
1966     typedef T19 item19;
1967     typedef T20 item20;
1968     typedef T21 item21;
1969     typedef T22 item22;
1970     typedef T23 item23;
1971     typedef T24 item24;
1972     typedef T25 item25;
1973     typedef T26 item26;
1974     typedef T27 item27;
1975     typedef T28 item28;
1976     typedef T29 item29;
1977     typedef T30 item30;
1978     typedef T31 item31;
1979     typedef T32 item32;
1980     typedef T33 item33;
1981     typedef T34 item34;
1982     typedef T35 item35;
1983     typedef T36 item36;
1984     typedef T37 item37;
1985     typedef T38 item38;
1986     
1987 
1988     typedef void_ item39;
1989     typedef T38 back;
1990     typedef v_iter< type,0 > begin;
1991     typedef v_iter< type,39 > end;
1992 };
1993 
1994 template<>
1995 struct push_front_impl< aux::vector_tag<38> >
1996 {
1997     template< typename Vector, typename T > struct apply
1998     {
1999         typedef vector39<
2000               T
2001               ,
2002               typename Vector::item0, typename Vector::item1
2003             , typename Vector::item2, typename Vector::item3
2004             , typename Vector::item4, typename Vector::item5
2005             , typename Vector::item6, typename Vector::item7
2006             , typename Vector::item8, typename Vector::item9
2007             , typename Vector::item10, typename Vector::item11
2008             , typename Vector::item12, typename Vector::item13
2009             , typename Vector::item14, typename Vector::item15
2010             , typename Vector::item16, typename Vector::item17
2011             , typename Vector::item18, typename Vector::item19
2012             , typename Vector::item20, typename Vector::item21
2013             , typename Vector::item22, typename Vector::item23
2014             , typename Vector::item24, typename Vector::item25
2015             , typename Vector::item26, typename Vector::item27
2016             , typename Vector::item28, typename Vector::item29
2017             , typename Vector::item30, typename Vector::item31
2018             , typename Vector::item32, typename Vector::item33
2019             , typename Vector::item34, typename Vector::item35
2020             , typename Vector::item36, typename Vector::item37
2021             > type;
2022     };
2023 };
2024 
2025 template<>
2026 struct pop_front_impl< aux::vector_tag<39> >
2027 {
2028     template< typename Vector > struct apply
2029     {
2030         typedef vector38<
2031               typename Vector::item1, typename Vector::item2
2032             , typename Vector::item3, typename Vector::item4
2033             , typename Vector::item5, typename Vector::item6
2034             , typename Vector::item7, typename Vector::item8
2035             , typename Vector::item9, typename Vector::item10
2036             , typename Vector::item11, typename Vector::item12
2037             , typename Vector::item13, typename Vector::item14
2038             , typename Vector::item15, typename Vector::item16
2039             , typename Vector::item17, typename Vector::item18
2040             , typename Vector::item19, typename Vector::item20
2041             , typename Vector::item21, typename Vector::item22
2042             , typename Vector::item23, typename Vector::item24
2043             , typename Vector::item25, typename Vector::item26
2044             , typename Vector::item27, typename Vector::item28
2045             , typename Vector::item29, typename Vector::item30
2046             , typename Vector::item31, typename Vector::item32
2047             , typename Vector::item33, typename Vector::item34
2048             , typename Vector::item35, typename Vector::item36
2049             , typename Vector::item37, typename Vector::item38
2050             > type;
2051     };
2052 };
2053 
2054 template<>
2055 struct push_back_impl< aux::vector_tag<38> >
2056 {
2057     template< typename Vector, typename T > struct apply
2058     {
2059         typedef vector39<
2060               typename Vector::item0, typename Vector::item1
2061             , typename Vector::item2, typename Vector::item3
2062             , typename Vector::item4, typename Vector::item5
2063             , typename Vector::item6, typename Vector::item7
2064             , typename Vector::item8, typename Vector::item9
2065             , typename Vector::item10, typename Vector::item11
2066             , typename Vector::item12, typename Vector::item13
2067             , typename Vector::item14, typename Vector::item15
2068             , typename Vector::item16, typename Vector::item17
2069             , typename Vector::item18, typename Vector::item19
2070             , typename Vector::item20, typename Vector::item21
2071             , typename Vector::item22, typename Vector::item23
2072             , typename Vector::item24, typename Vector::item25
2073             , typename Vector::item26, typename Vector::item27
2074             , typename Vector::item28, typename Vector::item29
2075             , typename Vector::item30, typename Vector::item31
2076             , typename Vector::item32, typename Vector::item33
2077             , typename Vector::item34, typename Vector::item35
2078             , typename Vector::item36, typename Vector::item37
2079               ,
2080               T
2081             > type;
2082     };
2083 };
2084 
2085 template<>
2086 struct pop_back_impl< aux::vector_tag<39> >
2087 {
2088     template< typename Vector > struct apply
2089     {
2090         typedef vector38<
2091               typename Vector::item0, typename Vector::item1
2092             , typename Vector::item2, typename Vector::item3
2093             , typename Vector::item4, typename Vector::item5
2094             , typename Vector::item6, typename Vector::item7
2095             , typename Vector::item8, typename Vector::item9
2096             , typename Vector::item10, typename Vector::item11
2097             , typename Vector::item12, typename Vector::item13
2098             , typename Vector::item14, typename Vector::item15
2099             , typename Vector::item16, typename Vector::item17
2100             , typename Vector::item18, typename Vector::item19
2101             , typename Vector::item20, typename Vector::item21
2102             , typename Vector::item22, typename Vector::item23
2103             , typename Vector::item24, typename Vector::item25
2104             , typename Vector::item26, typename Vector::item27
2105             , typename Vector::item28, typename Vector::item29
2106             , typename Vector::item30, typename Vector::item31
2107             , typename Vector::item32, typename Vector::item33
2108             , typename Vector::item34, typename Vector::item35
2109             , typename Vector::item36, typename Vector::item37
2110             > type;
2111     };
2112 };
2113 
2114 namespace aux {
2115 template<> struct v_at_impl<39>
2116 {
2117     template< typename V_ > struct result_
2118     {
2119         typedef typename V_::item39 type;
2120     };
2121 };
2122 
2123 }
2124 
2125 template<>
2126 struct at_impl< aux::vector_tag<39> >
2127 {
2128     template< typename V_, typename N > struct apply
2129     {
2130         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
2131             ::template result_<V_>::type type;
2132     };
2133 };
2134 
2135 template<>
2136 struct front_impl< aux::vector_tag<39> >
2137 {
2138     template< typename Vector > struct apply
2139     {
2140         typedef typename Vector::item0 type;
2141     };
2142 };
2143 
2144 template<>
2145 struct back_impl< aux::vector_tag<39> >
2146 {
2147     template< typename Vector > struct apply
2148     {
2149         typedef typename Vector::back type;
2150     };
2151 };
2152 
2153 template<>
2154 struct empty_impl< aux::vector_tag<39> >
2155 {
2156     template< typename Vector > struct apply
2157         : false_
2158     {
2159     };
2160 };
2161 
2162 template<>
2163 struct size_impl< aux::vector_tag<39> >
2164 {
2165     template< typename Vector > struct apply
2166         : long_<39>
2167     {
2168     };
2169 };
2170 
2171 template<>
2172 struct O1_size_impl< aux::vector_tag<39> >
2173     : size_impl< aux::vector_tag<39> >
2174 {
2175 };
2176 
2177 template<>
2178 struct clear_impl< aux::vector_tag<39> >
2179 {
2180     template< typename Vector > struct apply
2181     {
2182         typedef vector0<> type;
2183     };
2184 };
2185 
2186 template<
2187       typename T0, typename T1, typename T2, typename T3, typename T4
2188     , typename T5, typename T6, typename T7, typename T8, typename T9
2189     , typename T10, typename T11, typename T12, typename T13, typename T14
2190     , typename T15, typename T16, typename T17, typename T18, typename T19
2191     , typename T20, typename T21, typename T22, typename T23, typename T24
2192     , typename T25, typename T26, typename T27, typename T28, typename T29
2193     , typename T30, typename T31, typename T32, typename T33, typename T34
2194     , typename T35, typename T36, typename T37, typename T38, typename T39
2195     >
2196 struct vector40
2197 {
2198     typedef aux::vector_tag<40> tag;
2199     typedef vector40 type;
2200     typedef T0 item0;
2201     typedef T1 item1;
2202     typedef T2 item2;
2203     typedef T3 item3;
2204     typedef T4 item4;
2205     typedef T5 item5;
2206     typedef T6 item6;
2207     typedef T7 item7;
2208     typedef T8 item8;
2209     typedef T9 item9;
2210     typedef T10 item10;
2211     typedef T11 item11;
2212     typedef T12 item12;
2213     typedef T13 item13;
2214     typedef T14 item14;
2215     typedef T15 item15;
2216     typedef T16 item16;
2217     typedef T17 item17;
2218     typedef T18 item18;
2219     typedef T19 item19;
2220     typedef T20 item20;
2221     typedef T21 item21;
2222     typedef T22 item22;
2223     typedef T23 item23;
2224     typedef T24 item24;
2225     typedef T25 item25;
2226     typedef T26 item26;
2227     typedef T27 item27;
2228     typedef T28 item28;
2229     typedef T29 item29;
2230     typedef T30 item30;
2231     typedef T31 item31;
2232     typedef T32 item32;
2233     typedef T33 item33;
2234     typedef T34 item34;
2235     typedef T35 item35;
2236     typedef T36 item36;
2237     typedef T37 item37;
2238     typedef T38 item38;
2239     typedef T39 item39;
2240     
2241 
2242     typedef void_ item40;
2243     typedef T39 back;
2244     typedef v_iter< type,0 > begin;
2245     typedef v_iter< type,40 > end;
2246 };
2247 
2248 template<>
2249 struct push_front_impl< aux::vector_tag<39> >
2250 {
2251     template< typename Vector, typename T > struct apply
2252     {
2253         typedef vector40<
2254               T
2255               ,
2256               typename Vector::item0, typename Vector::item1
2257             , typename Vector::item2, typename Vector::item3
2258             , typename Vector::item4, typename Vector::item5
2259             , typename Vector::item6, typename Vector::item7
2260             , typename Vector::item8, typename Vector::item9
2261             , typename Vector::item10, typename Vector::item11
2262             , typename Vector::item12, typename Vector::item13
2263             , typename Vector::item14, typename Vector::item15
2264             , typename Vector::item16, typename Vector::item17
2265             , typename Vector::item18, typename Vector::item19
2266             , typename Vector::item20, typename Vector::item21
2267             , typename Vector::item22, typename Vector::item23
2268             , typename Vector::item24, typename Vector::item25
2269             , typename Vector::item26, typename Vector::item27
2270             , typename Vector::item28, typename Vector::item29
2271             , typename Vector::item30, typename Vector::item31
2272             , typename Vector::item32, typename Vector::item33
2273             , typename Vector::item34, typename Vector::item35
2274             , typename Vector::item36, typename Vector::item37
2275             , typename Vector::item38
2276             > type;
2277     };
2278 };
2279 
2280 template<>
2281 struct pop_front_impl< aux::vector_tag<40> >
2282 {
2283     template< typename Vector > struct apply
2284     {
2285         typedef vector39<
2286               typename Vector::item1, typename Vector::item2
2287             , typename Vector::item3, typename Vector::item4
2288             , typename Vector::item5, typename Vector::item6
2289             , typename Vector::item7, typename Vector::item8
2290             , typename Vector::item9, typename Vector::item10
2291             , typename Vector::item11, typename Vector::item12
2292             , typename Vector::item13, typename Vector::item14
2293             , typename Vector::item15, typename Vector::item16
2294             , typename Vector::item17, typename Vector::item18
2295             , typename Vector::item19, typename Vector::item20
2296             , typename Vector::item21, typename Vector::item22
2297             , typename Vector::item23, typename Vector::item24
2298             , typename Vector::item25, typename Vector::item26
2299             , typename Vector::item27, typename Vector::item28
2300             , typename Vector::item29, typename Vector::item30
2301             , typename Vector::item31, typename Vector::item32
2302             , typename Vector::item33, typename Vector::item34
2303             , typename Vector::item35, typename Vector::item36
2304             , typename Vector::item37, typename Vector::item38
2305             , typename Vector::item39
2306             > type;
2307     };
2308 };
2309 
2310 template<>
2311 struct push_back_impl< aux::vector_tag<39> >
2312 {
2313     template< typename Vector, typename T > struct apply
2314     {
2315         typedef vector40<
2316               typename Vector::item0, typename Vector::item1
2317             , typename Vector::item2, typename Vector::item3
2318             , typename Vector::item4, typename Vector::item5
2319             , typename Vector::item6, typename Vector::item7
2320             , typename Vector::item8, typename Vector::item9
2321             , typename Vector::item10, typename Vector::item11
2322             , typename Vector::item12, typename Vector::item13
2323             , typename Vector::item14, typename Vector::item15
2324             , typename Vector::item16, typename Vector::item17
2325             , typename Vector::item18, typename Vector::item19
2326             , typename Vector::item20, typename Vector::item21
2327             , typename Vector::item22, typename Vector::item23
2328             , typename Vector::item24, typename Vector::item25
2329             , typename Vector::item26, typename Vector::item27
2330             , typename Vector::item28, typename Vector::item29
2331             , typename Vector::item30, typename Vector::item31
2332             , typename Vector::item32, typename Vector::item33
2333             , typename Vector::item34, typename Vector::item35
2334             , typename Vector::item36, typename Vector::item37
2335             , typename Vector::item38
2336               ,
2337               T
2338             > type;
2339     };
2340 };
2341 
2342 template<>
2343 struct pop_back_impl< aux::vector_tag<40> >
2344 {
2345     template< typename Vector > struct apply
2346     {
2347         typedef vector39<
2348               typename Vector::item0, typename Vector::item1
2349             , typename Vector::item2, typename Vector::item3
2350             , typename Vector::item4, typename Vector::item5
2351             , typename Vector::item6, typename Vector::item7
2352             , typename Vector::item8, typename Vector::item9
2353             , typename Vector::item10, typename Vector::item11
2354             , typename Vector::item12, typename Vector::item13
2355             , typename Vector::item14, typename Vector::item15
2356             , typename Vector::item16, typename Vector::item17
2357             , typename Vector::item18, typename Vector::item19
2358             , typename Vector::item20, typename Vector::item21
2359             , typename Vector::item22, typename Vector::item23
2360             , typename Vector::item24, typename Vector::item25
2361             , typename Vector::item26, typename Vector::item27
2362             , typename Vector::item28, typename Vector::item29
2363             , typename Vector::item30, typename Vector::item31
2364             , typename Vector::item32, typename Vector::item33
2365             , typename Vector::item34, typename Vector::item35
2366             , typename Vector::item36, typename Vector::item37
2367             , typename Vector::item38
2368             > type;
2369     };
2370 };
2371 
2372 namespace aux {
2373 template<> struct v_at_impl<40>
2374 {
2375     template< typename V_ > struct result_
2376     {
2377         typedef typename V_::item40 type;
2378     };
2379 };
2380 
2381 }
2382 
2383 template<>
2384 struct at_impl< aux::vector_tag<40> >
2385 {
2386     template< typename V_, typename N > struct apply
2387     {
2388         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
2389             ::template result_<V_>::type type;
2390     };
2391 };
2392 
2393 template<>
2394 struct front_impl< aux::vector_tag<40> >
2395 {
2396     template< typename Vector > struct apply
2397     {
2398         typedef typename Vector::item0 type;
2399     };
2400 };
2401 
2402 template<>
2403 struct back_impl< aux::vector_tag<40> >
2404 {
2405     template< typename Vector > struct apply
2406     {
2407         typedef typename Vector::back type;
2408     };
2409 };
2410 
2411 template<>
2412 struct empty_impl< aux::vector_tag<40> >
2413 {
2414     template< typename Vector > struct apply
2415         : false_
2416     {
2417     };
2418 };
2419 
2420 template<>
2421 struct size_impl< aux::vector_tag<40> >
2422 {
2423     template< typename Vector > struct apply
2424         : long_<40>
2425     {
2426     };
2427 };
2428 
2429 template<>
2430 struct O1_size_impl< aux::vector_tag<40> >
2431     : size_impl< aux::vector_tag<40> >
2432 {
2433 };
2434 
2435 template<>
2436 struct clear_impl< aux::vector_tag<40> >
2437 {
2438     template< typename Vector > struct apply
2439     {
2440         typedef vector0<> type;
2441     };
2442 };
2443 
2444 }}