Back to home page

EIC code displayed by LXR

 
 

    


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

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 template< typename V >
0171 struct v_at< V,31 >
0172 {
0173     typedef typename V::item31 type;
0174 };
0175 
0176 template<
0177       typename T0, typename T1, typename T2, typename T3, typename T4
0178     , typename T5, typename T6, typename T7, typename T8, typename T9
0179     , typename T10, typename T11, typename T12, typename T13, typename T14
0180     , typename T15, typename T16, typename T17, typename T18, typename T19
0181     , typename T20, typename T21, typename T22, typename T23, typename T24
0182     , typename T25, typename T26, typename T27, typename T28, typename T29
0183     , typename T30, typename T31
0184     >
0185 struct vector32
0186 {
0187     typedef aux::vector_tag<32> tag;
0188     typedef vector32 type;
0189     typedef T0 item0;
0190     typedef T1 item1;
0191     typedef T2 item2;
0192     typedef T3 item3;
0193     typedef T4 item4;
0194     typedef T5 item5;
0195     typedef T6 item6;
0196     typedef T7 item7;
0197     typedef T8 item8;
0198     typedef T9 item9;
0199     typedef T10 item10;
0200     typedef T11 item11;
0201     typedef T12 item12;
0202     typedef T13 item13;
0203     typedef T14 item14;
0204     typedef T15 item15;
0205     typedef T16 item16;
0206     typedef T17 item17;
0207     typedef T18 item18;
0208     typedef T19 item19;
0209     typedef T20 item20;
0210     typedef T21 item21;
0211     typedef T22 item22;
0212     typedef T23 item23;
0213     typedef T24 item24;
0214     typedef T25 item25;
0215     typedef T26 item26;
0216     typedef T27 item27;
0217     typedef T28 item28;
0218     typedef T29 item29;
0219     typedef T30 item30;
0220     typedef T31 item31;
0221     
0222 
0223     typedef void_ item32;
0224     typedef T31 back;
0225     typedef v_iter< type,0 > begin;
0226     typedef v_iter< type,32 > end;
0227 };
0228 
0229 template<>
0230 struct push_front_impl< aux::vector_tag<31> >
0231 {
0232     template< typename Vector, typename T > struct apply
0233     {
0234         typedef vector32<
0235               T
0236               ,
0237               typename Vector::item0, typename Vector::item1
0238             , typename Vector::item2, typename Vector::item3
0239             , typename Vector::item4, typename Vector::item5
0240             , typename Vector::item6, typename Vector::item7
0241             , typename Vector::item8, typename Vector::item9
0242             , typename Vector::item10, typename Vector::item11
0243             , typename Vector::item12, typename Vector::item13
0244             , typename Vector::item14, typename Vector::item15
0245             , typename Vector::item16, typename Vector::item17
0246             , typename Vector::item18, typename Vector::item19
0247             , typename Vector::item20, typename Vector::item21
0248             , typename Vector::item22, typename Vector::item23
0249             , typename Vector::item24, typename Vector::item25
0250             , typename Vector::item26, typename Vector::item27
0251             , typename Vector::item28, typename Vector::item29
0252             , typename Vector::item30
0253             > type;
0254     };
0255 };
0256 
0257 template<>
0258 struct pop_front_impl< aux::vector_tag<32> >
0259 {
0260     template< typename Vector > struct apply
0261     {
0262         typedef vector31<
0263               typename Vector::item1, typename Vector::item2
0264             , typename Vector::item3, typename Vector::item4
0265             , typename Vector::item5, typename Vector::item6
0266             , typename Vector::item7, typename Vector::item8
0267             , typename Vector::item9, typename Vector::item10
0268             , typename Vector::item11, typename Vector::item12
0269             , typename Vector::item13, typename Vector::item14
0270             , typename Vector::item15, typename Vector::item16
0271             , typename Vector::item17, typename Vector::item18
0272             , typename Vector::item19, typename Vector::item20
0273             , typename Vector::item21, typename Vector::item22
0274             , typename Vector::item23, typename Vector::item24
0275             , typename Vector::item25, typename Vector::item26
0276             , typename Vector::item27, typename Vector::item28
0277             , typename Vector::item29, typename Vector::item30
0278             , typename Vector::item31
0279             > type;
0280     };
0281 };
0282 
0283 template<>
0284 struct push_back_impl< aux::vector_tag<31> >
0285 {
0286     template< typename Vector, typename T > struct apply
0287     {
0288         typedef vector32<
0289               typename Vector::item0, typename Vector::item1
0290             , typename Vector::item2, typename Vector::item3
0291             , typename Vector::item4, typename Vector::item5
0292             , typename Vector::item6, typename Vector::item7
0293             , typename Vector::item8, typename Vector::item9
0294             , typename Vector::item10, typename Vector::item11
0295             , typename Vector::item12, typename Vector::item13
0296             , typename Vector::item14, typename Vector::item15
0297             , typename Vector::item16, typename Vector::item17
0298             , typename Vector::item18, typename Vector::item19
0299             , typename Vector::item20, typename Vector::item21
0300             , typename Vector::item22, typename Vector::item23
0301             , typename Vector::item24, typename Vector::item25
0302             , typename Vector::item26, typename Vector::item27
0303             , typename Vector::item28, typename Vector::item29
0304             , typename Vector::item30
0305               ,
0306               T
0307             > type;
0308     };
0309 };
0310 
0311 template<>
0312 struct pop_back_impl< aux::vector_tag<32> >
0313 {
0314     template< typename Vector > struct apply
0315     {
0316         typedef vector31<
0317               typename Vector::item0, typename Vector::item1
0318             , typename Vector::item2, typename Vector::item3
0319             , typename Vector::item4, typename Vector::item5
0320             , typename Vector::item6, typename Vector::item7
0321             , typename Vector::item8, typename Vector::item9
0322             , typename Vector::item10, typename Vector::item11
0323             , typename Vector::item12, typename Vector::item13
0324             , typename Vector::item14, typename Vector::item15
0325             , typename Vector::item16, typename Vector::item17
0326             , typename Vector::item18, typename Vector::item19
0327             , typename Vector::item20, typename Vector::item21
0328             , typename Vector::item22, typename Vector::item23
0329             , typename Vector::item24, typename Vector::item25
0330             , typename Vector::item26, typename Vector::item27
0331             , typename Vector::item28, typename Vector::item29
0332             , typename Vector::item30
0333             > type;
0334     };
0335 };
0336 
0337 template< typename V >
0338 struct v_at< V,32 >
0339 {
0340     typedef typename V::item32 type;
0341 };
0342 
0343 template<
0344       typename T0, typename T1, typename T2, typename T3, typename T4
0345     , typename T5, typename T6, typename T7, typename T8, typename T9
0346     , typename T10, typename T11, typename T12, typename T13, typename T14
0347     , typename T15, typename T16, typename T17, typename T18, typename T19
0348     , typename T20, typename T21, typename T22, typename T23, typename T24
0349     , typename T25, typename T26, typename T27, typename T28, typename T29
0350     , typename T30, typename T31, typename T32
0351     >
0352 struct vector33
0353 {
0354     typedef aux::vector_tag<33> tag;
0355     typedef vector33 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     typedef T13 item13;
0370     typedef T14 item14;
0371     typedef T15 item15;
0372     typedef T16 item16;
0373     typedef T17 item17;
0374     typedef T18 item18;
0375     typedef T19 item19;
0376     typedef T20 item20;
0377     typedef T21 item21;
0378     typedef T22 item22;
0379     typedef T23 item23;
0380     typedef T24 item24;
0381     typedef T25 item25;
0382     typedef T26 item26;
0383     typedef T27 item27;
0384     typedef T28 item28;
0385     typedef T29 item29;
0386     typedef T30 item30;
0387     typedef T31 item31;
0388     typedef T32 item32;
0389     
0390 
0391     typedef void_ item33;
0392     typedef T32 back;
0393     typedef v_iter< type,0 > begin;
0394     typedef v_iter< type,33 > end;
0395 };
0396 
0397 template<>
0398 struct push_front_impl< aux::vector_tag<32> >
0399 {
0400     template< typename Vector, typename T > struct apply
0401     {
0402         typedef vector33<
0403               T
0404               ,
0405               typename Vector::item0, typename Vector::item1
0406             , typename Vector::item2, typename Vector::item3
0407             , typename Vector::item4, typename Vector::item5
0408             , typename Vector::item6, typename Vector::item7
0409             , typename Vector::item8, typename Vector::item9
0410             , typename Vector::item10, typename Vector::item11
0411             , typename Vector::item12, typename Vector::item13
0412             , typename Vector::item14, typename Vector::item15
0413             , typename Vector::item16, typename Vector::item17
0414             , typename Vector::item18, typename Vector::item19
0415             , typename Vector::item20, typename Vector::item21
0416             , typename Vector::item22, typename Vector::item23
0417             , typename Vector::item24, typename Vector::item25
0418             , typename Vector::item26, typename Vector::item27
0419             , typename Vector::item28, typename Vector::item29
0420             , typename Vector::item30, typename Vector::item31
0421             > type;
0422     };
0423 };
0424 
0425 template<>
0426 struct pop_front_impl< aux::vector_tag<33> >
0427 {
0428     template< typename Vector > struct apply
0429     {
0430         typedef vector32<
0431               typename Vector::item1, typename Vector::item2
0432             , typename Vector::item3, typename Vector::item4
0433             , typename Vector::item5, typename Vector::item6
0434             , typename Vector::item7, typename Vector::item8
0435             , typename Vector::item9, typename Vector::item10
0436             , typename Vector::item11, typename Vector::item12
0437             , typename Vector::item13, typename Vector::item14
0438             , typename Vector::item15, typename Vector::item16
0439             , typename Vector::item17, typename Vector::item18
0440             , typename Vector::item19, typename Vector::item20
0441             , typename Vector::item21, typename Vector::item22
0442             , typename Vector::item23, typename Vector::item24
0443             , typename Vector::item25, typename Vector::item26
0444             , typename Vector::item27, typename Vector::item28
0445             , typename Vector::item29, typename Vector::item30
0446             , typename Vector::item31, typename Vector::item32
0447             > type;
0448     };
0449 };
0450 
0451 template<>
0452 struct push_back_impl< aux::vector_tag<32> >
0453 {
0454     template< typename Vector, typename T > struct apply
0455     {
0456         typedef vector33<
0457               typename Vector::item0, typename Vector::item1
0458             , typename Vector::item2, typename Vector::item3
0459             , typename Vector::item4, typename Vector::item5
0460             , typename Vector::item6, typename Vector::item7
0461             , typename Vector::item8, typename Vector::item9
0462             , typename Vector::item10, typename Vector::item11
0463             , typename Vector::item12, typename Vector::item13
0464             , typename Vector::item14, typename Vector::item15
0465             , typename Vector::item16, typename Vector::item17
0466             , typename Vector::item18, typename Vector::item19
0467             , typename Vector::item20, typename Vector::item21
0468             , typename Vector::item22, typename Vector::item23
0469             , typename Vector::item24, typename Vector::item25
0470             , typename Vector::item26, typename Vector::item27
0471             , typename Vector::item28, typename Vector::item29
0472             , typename Vector::item30, typename Vector::item31
0473               ,
0474               T
0475             > type;
0476     };
0477 };
0478 
0479 template<>
0480 struct pop_back_impl< aux::vector_tag<33> >
0481 {
0482     template< typename Vector > struct apply
0483     {
0484         typedef vector32<
0485               typename Vector::item0, typename Vector::item1
0486             , typename Vector::item2, typename Vector::item3
0487             , typename Vector::item4, typename Vector::item5
0488             , typename Vector::item6, typename Vector::item7
0489             , typename Vector::item8, typename Vector::item9
0490             , typename Vector::item10, typename Vector::item11
0491             , typename Vector::item12, typename Vector::item13
0492             , typename Vector::item14, typename Vector::item15
0493             , typename Vector::item16, typename Vector::item17
0494             , typename Vector::item18, typename Vector::item19
0495             , typename Vector::item20, typename Vector::item21
0496             , typename Vector::item22, typename Vector::item23
0497             , typename Vector::item24, typename Vector::item25
0498             , typename Vector::item26, typename Vector::item27
0499             , typename Vector::item28, typename Vector::item29
0500             , typename Vector::item30, typename Vector::item31
0501             > type;
0502     };
0503 };
0504 
0505 template< typename V >
0506 struct v_at< V,33 >
0507 {
0508     typedef typename V::item33 type;
0509 };
0510 
0511 template<
0512       typename T0, typename T1, typename T2, typename T3, typename T4
0513     , typename T5, typename T6, typename T7, typename T8, typename T9
0514     , typename T10, typename T11, typename T12, typename T13, typename T14
0515     , typename T15, typename T16, typename T17, typename T18, typename T19
0516     , typename T20, typename T21, typename T22, typename T23, typename T24
0517     , typename T25, typename T26, typename T27, typename T28, typename T29
0518     , typename T30, typename T31, typename T32, typename T33
0519     >
0520 struct vector34
0521 {
0522     typedef aux::vector_tag<34> tag;
0523     typedef vector34 type;
0524     typedef T0 item0;
0525     typedef T1 item1;
0526     typedef T2 item2;
0527     typedef T3 item3;
0528     typedef T4 item4;
0529     typedef T5 item5;
0530     typedef T6 item6;
0531     typedef T7 item7;
0532     typedef T8 item8;
0533     typedef T9 item9;
0534     typedef T10 item10;
0535     typedef T11 item11;
0536     typedef T12 item12;
0537     typedef T13 item13;
0538     typedef T14 item14;
0539     typedef T15 item15;
0540     typedef T16 item16;
0541     typedef T17 item17;
0542     typedef T18 item18;
0543     typedef T19 item19;
0544     typedef T20 item20;
0545     typedef T21 item21;
0546     typedef T22 item22;
0547     typedef T23 item23;
0548     typedef T24 item24;
0549     typedef T25 item25;
0550     typedef T26 item26;
0551     typedef T27 item27;
0552     typedef T28 item28;
0553     typedef T29 item29;
0554     typedef T30 item30;
0555     typedef T31 item31;
0556     typedef T32 item32;
0557     typedef T33 item33;
0558     
0559 
0560     typedef void_ item34;
0561     typedef T33 back;
0562     typedef v_iter< type,0 > begin;
0563     typedef v_iter< type,34 > end;
0564 };
0565 
0566 template<>
0567 struct push_front_impl< aux::vector_tag<33> >
0568 {
0569     template< typename Vector, typename T > struct apply
0570     {
0571         typedef vector34<
0572               T
0573               ,
0574               typename Vector::item0, typename Vector::item1
0575             , typename Vector::item2, typename Vector::item3
0576             , typename Vector::item4, typename Vector::item5
0577             , typename Vector::item6, typename Vector::item7
0578             , typename Vector::item8, typename Vector::item9
0579             , typename Vector::item10, typename Vector::item11
0580             , typename Vector::item12, typename Vector::item13
0581             , typename Vector::item14, typename Vector::item15
0582             , typename Vector::item16, typename Vector::item17
0583             , typename Vector::item18, typename Vector::item19
0584             , typename Vector::item20, typename Vector::item21
0585             , typename Vector::item22, typename Vector::item23
0586             , typename Vector::item24, typename Vector::item25
0587             , typename Vector::item26, typename Vector::item27
0588             , typename Vector::item28, typename Vector::item29
0589             , typename Vector::item30, typename Vector::item31
0590             , typename Vector::item32
0591             > type;
0592     };
0593 };
0594 
0595 template<>
0596 struct pop_front_impl< aux::vector_tag<34> >
0597 {
0598     template< typename Vector > struct apply
0599     {
0600         typedef vector33<
0601               typename Vector::item1, typename Vector::item2
0602             , typename Vector::item3, typename Vector::item4
0603             , typename Vector::item5, typename Vector::item6
0604             , typename Vector::item7, typename Vector::item8
0605             , typename Vector::item9, typename Vector::item10
0606             , typename Vector::item11, typename Vector::item12
0607             , typename Vector::item13, typename Vector::item14
0608             , typename Vector::item15, typename Vector::item16
0609             , typename Vector::item17, typename Vector::item18
0610             , typename Vector::item19, typename Vector::item20
0611             , typename Vector::item21, typename Vector::item22
0612             , typename Vector::item23, typename Vector::item24
0613             , typename Vector::item25, typename Vector::item26
0614             , typename Vector::item27, typename Vector::item28
0615             , typename Vector::item29, typename Vector::item30
0616             , typename Vector::item31, typename Vector::item32
0617             , typename Vector::item33
0618             > type;
0619     };
0620 };
0621 
0622 template<>
0623 struct push_back_impl< aux::vector_tag<33> >
0624 {
0625     template< typename Vector, typename T > struct apply
0626     {
0627         typedef vector34<
0628               typename Vector::item0, typename Vector::item1
0629             , typename Vector::item2, typename Vector::item3
0630             , typename Vector::item4, typename Vector::item5
0631             , typename Vector::item6, typename Vector::item7
0632             , typename Vector::item8, typename Vector::item9
0633             , typename Vector::item10, typename Vector::item11
0634             , typename Vector::item12, typename Vector::item13
0635             , typename Vector::item14, typename Vector::item15
0636             , typename Vector::item16, typename Vector::item17
0637             , typename Vector::item18, typename Vector::item19
0638             , typename Vector::item20, typename Vector::item21
0639             , typename Vector::item22, typename Vector::item23
0640             , typename Vector::item24, typename Vector::item25
0641             , typename Vector::item26, typename Vector::item27
0642             , typename Vector::item28, typename Vector::item29
0643             , typename Vector::item30, typename Vector::item31
0644             , typename Vector::item32
0645               ,
0646               T
0647             > type;
0648     };
0649 };
0650 
0651 template<>
0652 struct pop_back_impl< aux::vector_tag<34> >
0653 {
0654     template< typename Vector > struct apply
0655     {
0656         typedef vector33<
0657               typename Vector::item0, typename Vector::item1
0658             , typename Vector::item2, typename Vector::item3
0659             , typename Vector::item4, typename Vector::item5
0660             , typename Vector::item6, typename Vector::item7
0661             , typename Vector::item8, typename Vector::item9
0662             , typename Vector::item10, typename Vector::item11
0663             , typename Vector::item12, typename Vector::item13
0664             , typename Vector::item14, typename Vector::item15
0665             , typename Vector::item16, typename Vector::item17
0666             , typename Vector::item18, typename Vector::item19
0667             , typename Vector::item20, typename Vector::item21
0668             , typename Vector::item22, typename Vector::item23
0669             , typename Vector::item24, typename Vector::item25
0670             , typename Vector::item26, typename Vector::item27
0671             , typename Vector::item28, typename Vector::item29
0672             , typename Vector::item30, typename Vector::item31
0673             , typename Vector::item32
0674             > type;
0675     };
0676 };
0677 
0678 template< typename V >
0679 struct v_at< V,34 >
0680 {
0681     typedef typename V::item34 type;
0682 };
0683 
0684 template<
0685       typename T0, typename T1, typename T2, typename T3, typename T4
0686     , typename T5, typename T6, typename T7, typename T8, typename T9
0687     , typename T10, typename T11, typename T12, typename T13, typename T14
0688     , typename T15, typename T16, typename T17, typename T18, typename T19
0689     , typename T20, typename T21, typename T22, typename T23, typename T24
0690     , typename T25, typename T26, typename T27, typename T28, typename T29
0691     , typename T30, typename T31, typename T32, typename T33, typename T34
0692     >
0693 struct vector35
0694 {
0695     typedef aux::vector_tag<35> tag;
0696     typedef vector35 type;
0697     typedef T0 item0;
0698     typedef T1 item1;
0699     typedef T2 item2;
0700     typedef T3 item3;
0701     typedef T4 item4;
0702     typedef T5 item5;
0703     typedef T6 item6;
0704     typedef T7 item7;
0705     typedef T8 item8;
0706     typedef T9 item9;
0707     typedef T10 item10;
0708     typedef T11 item11;
0709     typedef T12 item12;
0710     typedef T13 item13;
0711     typedef T14 item14;
0712     typedef T15 item15;
0713     typedef T16 item16;
0714     typedef T17 item17;
0715     typedef T18 item18;
0716     typedef T19 item19;
0717     typedef T20 item20;
0718     typedef T21 item21;
0719     typedef T22 item22;
0720     typedef T23 item23;
0721     typedef T24 item24;
0722     typedef T25 item25;
0723     typedef T26 item26;
0724     typedef T27 item27;
0725     typedef T28 item28;
0726     typedef T29 item29;
0727     typedef T30 item30;
0728     typedef T31 item31;
0729     typedef T32 item32;
0730     typedef T33 item33;
0731     typedef T34 item34;
0732     
0733 
0734     typedef void_ item35;
0735     typedef T34 back;
0736     typedef v_iter< type,0 > begin;
0737     typedef v_iter< type,35 > end;
0738 };
0739 
0740 template<>
0741 struct push_front_impl< aux::vector_tag<34> >
0742 {
0743     template< typename Vector, typename T > struct apply
0744     {
0745         typedef vector35<
0746               T
0747               ,
0748               typename Vector::item0, typename Vector::item1
0749             , typename Vector::item2, typename Vector::item3
0750             , typename Vector::item4, typename Vector::item5
0751             , typename Vector::item6, typename Vector::item7
0752             , typename Vector::item8, typename Vector::item9
0753             , typename Vector::item10, typename Vector::item11
0754             , typename Vector::item12, typename Vector::item13
0755             , typename Vector::item14, typename Vector::item15
0756             , typename Vector::item16, typename Vector::item17
0757             , typename Vector::item18, typename Vector::item19
0758             , typename Vector::item20, typename Vector::item21
0759             , typename Vector::item22, typename Vector::item23
0760             , typename Vector::item24, typename Vector::item25
0761             , typename Vector::item26, typename Vector::item27
0762             , typename Vector::item28, typename Vector::item29
0763             , typename Vector::item30, typename Vector::item31
0764             , typename Vector::item32, typename Vector::item33
0765             > type;
0766     };
0767 };
0768 
0769 template<>
0770 struct pop_front_impl< aux::vector_tag<35> >
0771 {
0772     template< typename Vector > struct apply
0773     {
0774         typedef vector34<
0775               typename Vector::item1, typename Vector::item2
0776             , typename Vector::item3, typename Vector::item4
0777             , typename Vector::item5, typename Vector::item6
0778             , typename Vector::item7, typename Vector::item8
0779             , typename Vector::item9, typename Vector::item10
0780             , typename Vector::item11, typename Vector::item12
0781             , typename Vector::item13, typename Vector::item14
0782             , typename Vector::item15, typename Vector::item16
0783             , typename Vector::item17, typename Vector::item18
0784             , typename Vector::item19, typename Vector::item20
0785             , typename Vector::item21, typename Vector::item22
0786             , typename Vector::item23, typename Vector::item24
0787             , typename Vector::item25, typename Vector::item26
0788             , typename Vector::item27, typename Vector::item28
0789             , typename Vector::item29, typename Vector::item30
0790             , typename Vector::item31, typename Vector::item32
0791             , typename Vector::item33, typename Vector::item34
0792             > type;
0793     };
0794 };
0795 
0796 template<>
0797 struct push_back_impl< aux::vector_tag<34> >
0798 {
0799     template< typename Vector, typename T > struct apply
0800     {
0801         typedef vector35<
0802               typename Vector::item0, typename Vector::item1
0803             , typename Vector::item2, typename Vector::item3
0804             , typename Vector::item4, typename Vector::item5
0805             , typename Vector::item6, typename Vector::item7
0806             , typename Vector::item8, typename Vector::item9
0807             , typename Vector::item10, typename Vector::item11
0808             , typename Vector::item12, typename Vector::item13
0809             , typename Vector::item14, typename Vector::item15
0810             , typename Vector::item16, typename Vector::item17
0811             , typename Vector::item18, typename Vector::item19
0812             , typename Vector::item20, typename Vector::item21
0813             , typename Vector::item22, typename Vector::item23
0814             , typename Vector::item24, typename Vector::item25
0815             , typename Vector::item26, typename Vector::item27
0816             , typename Vector::item28, typename Vector::item29
0817             , typename Vector::item30, typename Vector::item31
0818             , typename Vector::item32, typename Vector::item33
0819               ,
0820               T
0821             > type;
0822     };
0823 };
0824 
0825 template<>
0826 struct pop_back_impl< aux::vector_tag<35> >
0827 {
0828     template< typename Vector > struct apply
0829     {
0830         typedef vector34<
0831               typename Vector::item0, typename Vector::item1
0832             , typename Vector::item2, typename Vector::item3
0833             , typename Vector::item4, typename Vector::item5
0834             , typename Vector::item6, typename Vector::item7
0835             , typename Vector::item8, typename Vector::item9
0836             , typename Vector::item10, typename Vector::item11
0837             , typename Vector::item12, typename Vector::item13
0838             , typename Vector::item14, typename Vector::item15
0839             , typename Vector::item16, typename Vector::item17
0840             , typename Vector::item18, typename Vector::item19
0841             , typename Vector::item20, typename Vector::item21
0842             , typename Vector::item22, typename Vector::item23
0843             , typename Vector::item24, typename Vector::item25
0844             , typename Vector::item26, typename Vector::item27
0845             , typename Vector::item28, typename Vector::item29
0846             , typename Vector::item30, typename Vector::item31
0847             , typename Vector::item32, typename Vector::item33
0848             > type;
0849     };
0850 };
0851 
0852 template< typename V >
0853 struct v_at< V,35 >
0854 {
0855     typedef typename V::item35 type;
0856 };
0857 
0858 template<
0859       typename T0, typename T1, typename T2, typename T3, typename T4
0860     , typename T5, typename T6, typename T7, typename T8, typename T9
0861     , typename T10, typename T11, typename T12, typename T13, typename T14
0862     , typename T15, typename T16, typename T17, typename T18, typename T19
0863     , typename T20, typename T21, typename T22, typename T23, typename T24
0864     , typename T25, typename T26, typename T27, typename T28, typename T29
0865     , typename T30, typename T31, typename T32, typename T33, typename T34
0866     , typename T35
0867     >
0868 struct vector36
0869 {
0870     typedef aux::vector_tag<36> tag;
0871     typedef vector36 type;
0872     typedef T0 item0;
0873     typedef T1 item1;
0874     typedef T2 item2;
0875     typedef T3 item3;
0876     typedef T4 item4;
0877     typedef T5 item5;
0878     typedef T6 item6;
0879     typedef T7 item7;
0880     typedef T8 item8;
0881     typedef T9 item9;
0882     typedef T10 item10;
0883     typedef T11 item11;
0884     typedef T12 item12;
0885     typedef T13 item13;
0886     typedef T14 item14;
0887     typedef T15 item15;
0888     typedef T16 item16;
0889     typedef T17 item17;
0890     typedef T18 item18;
0891     typedef T19 item19;
0892     typedef T20 item20;
0893     typedef T21 item21;
0894     typedef T22 item22;
0895     typedef T23 item23;
0896     typedef T24 item24;
0897     typedef T25 item25;
0898     typedef T26 item26;
0899     typedef T27 item27;
0900     typedef T28 item28;
0901     typedef T29 item29;
0902     typedef T30 item30;
0903     typedef T31 item31;
0904     typedef T32 item32;
0905     typedef T33 item33;
0906     typedef T34 item34;
0907     typedef T35 item35;
0908     
0909 
0910     typedef void_ item36;
0911     typedef T35 back;
0912     typedef v_iter< type,0 > begin;
0913     typedef v_iter< type,36 > end;
0914 };
0915 
0916 template<>
0917 struct push_front_impl< aux::vector_tag<35> >
0918 {
0919     template< typename Vector, typename T > struct apply
0920     {
0921         typedef vector36<
0922               T
0923               ,
0924               typename Vector::item0, typename Vector::item1
0925             , typename Vector::item2, typename Vector::item3
0926             , typename Vector::item4, typename Vector::item5
0927             , typename Vector::item6, typename Vector::item7
0928             , typename Vector::item8, typename Vector::item9
0929             , typename Vector::item10, typename Vector::item11
0930             , typename Vector::item12, typename Vector::item13
0931             , typename Vector::item14, typename Vector::item15
0932             , typename Vector::item16, typename Vector::item17
0933             , typename Vector::item18, typename Vector::item19
0934             , typename Vector::item20, typename Vector::item21
0935             , typename Vector::item22, typename Vector::item23
0936             , typename Vector::item24, typename Vector::item25
0937             , typename Vector::item26, typename Vector::item27
0938             , typename Vector::item28, typename Vector::item29
0939             , typename Vector::item30, typename Vector::item31
0940             , typename Vector::item32, typename Vector::item33
0941             , typename Vector::item34
0942             > type;
0943     };
0944 };
0945 
0946 template<>
0947 struct pop_front_impl< aux::vector_tag<36> >
0948 {
0949     template< typename Vector > struct apply
0950     {
0951         typedef vector35<
0952               typename Vector::item1, typename Vector::item2
0953             , typename Vector::item3, typename Vector::item4
0954             , typename Vector::item5, typename Vector::item6
0955             , typename Vector::item7, typename Vector::item8
0956             , typename Vector::item9, typename Vector::item10
0957             , typename Vector::item11, typename Vector::item12
0958             , typename Vector::item13, typename Vector::item14
0959             , typename Vector::item15, typename Vector::item16
0960             , typename Vector::item17, typename Vector::item18
0961             , typename Vector::item19, typename Vector::item20
0962             , typename Vector::item21, typename Vector::item22
0963             , typename Vector::item23, typename Vector::item24
0964             , typename Vector::item25, typename Vector::item26
0965             , typename Vector::item27, typename Vector::item28
0966             , typename Vector::item29, typename Vector::item30
0967             , typename Vector::item31, typename Vector::item32
0968             , typename Vector::item33, typename Vector::item34
0969             , typename Vector::item35
0970             > type;
0971     };
0972 };
0973 
0974 template<>
0975 struct push_back_impl< aux::vector_tag<35> >
0976 {
0977     template< typename Vector, typename T > struct apply
0978     {
0979         typedef vector36<
0980               typename Vector::item0, typename Vector::item1
0981             , typename Vector::item2, typename Vector::item3
0982             , typename Vector::item4, typename Vector::item5
0983             , typename Vector::item6, typename Vector::item7
0984             , typename Vector::item8, typename Vector::item9
0985             , typename Vector::item10, typename Vector::item11
0986             , typename Vector::item12, typename Vector::item13
0987             , typename Vector::item14, typename Vector::item15
0988             , typename Vector::item16, typename Vector::item17
0989             , typename Vector::item18, typename Vector::item19
0990             , typename Vector::item20, typename Vector::item21
0991             , typename Vector::item22, typename Vector::item23
0992             , typename Vector::item24, typename Vector::item25
0993             , typename Vector::item26, typename Vector::item27
0994             , typename Vector::item28, typename Vector::item29
0995             , typename Vector::item30, typename Vector::item31
0996             , typename Vector::item32, typename Vector::item33
0997             , typename Vector::item34
0998               ,
0999               T
1000             > type;
1001     };
1002 };
1003 
1004 template<>
1005 struct pop_back_impl< aux::vector_tag<36> >
1006 {
1007     template< typename Vector > struct apply
1008     {
1009         typedef vector35<
1010               typename Vector::item0, typename Vector::item1
1011             , typename Vector::item2, typename Vector::item3
1012             , typename Vector::item4, typename Vector::item5
1013             , typename Vector::item6, typename Vector::item7
1014             , typename Vector::item8, typename Vector::item9
1015             , typename Vector::item10, typename Vector::item11
1016             , typename Vector::item12, typename Vector::item13
1017             , typename Vector::item14, typename Vector::item15
1018             , typename Vector::item16, typename Vector::item17
1019             , typename Vector::item18, typename Vector::item19
1020             , typename Vector::item20, typename Vector::item21
1021             , typename Vector::item22, typename Vector::item23
1022             , typename Vector::item24, typename Vector::item25
1023             , typename Vector::item26, typename Vector::item27
1024             , typename Vector::item28, typename Vector::item29
1025             , typename Vector::item30, typename Vector::item31
1026             , typename Vector::item32, typename Vector::item33
1027             , typename Vector::item34
1028             > type;
1029     };
1030 };
1031 
1032 template< typename V >
1033 struct v_at< V,36 >
1034 {
1035     typedef typename V::item36 type;
1036 };
1037 
1038 template<
1039       typename T0, typename T1, typename T2, typename T3, typename T4
1040     , typename T5, typename T6, typename T7, typename T8, typename T9
1041     , typename T10, typename T11, typename T12, typename T13, typename T14
1042     , typename T15, typename T16, typename T17, typename T18, typename T19
1043     , typename T20, typename T21, typename T22, typename T23, typename T24
1044     , typename T25, typename T26, typename T27, typename T28, typename T29
1045     , typename T30, typename T31, typename T32, typename T33, typename T34
1046     , typename T35, typename T36
1047     >
1048 struct vector37
1049 {
1050     typedef aux::vector_tag<37> tag;
1051     typedef vector37 type;
1052     typedef T0 item0;
1053     typedef T1 item1;
1054     typedef T2 item2;
1055     typedef T3 item3;
1056     typedef T4 item4;
1057     typedef T5 item5;
1058     typedef T6 item6;
1059     typedef T7 item7;
1060     typedef T8 item8;
1061     typedef T9 item9;
1062     typedef T10 item10;
1063     typedef T11 item11;
1064     typedef T12 item12;
1065     typedef T13 item13;
1066     typedef T14 item14;
1067     typedef T15 item15;
1068     typedef T16 item16;
1069     typedef T17 item17;
1070     typedef T18 item18;
1071     typedef T19 item19;
1072     typedef T20 item20;
1073     typedef T21 item21;
1074     typedef T22 item22;
1075     typedef T23 item23;
1076     typedef T24 item24;
1077     typedef T25 item25;
1078     typedef T26 item26;
1079     typedef T27 item27;
1080     typedef T28 item28;
1081     typedef T29 item29;
1082     typedef T30 item30;
1083     typedef T31 item31;
1084     typedef T32 item32;
1085     typedef T33 item33;
1086     typedef T34 item34;
1087     typedef T35 item35;
1088     typedef T36 item36;
1089     
1090 
1091     typedef void_ item37;
1092     typedef T36 back;
1093     typedef v_iter< type,0 > begin;
1094     typedef v_iter< type,37 > end;
1095 };
1096 
1097 template<>
1098 struct push_front_impl< aux::vector_tag<36> >
1099 {
1100     template< typename Vector, typename T > struct apply
1101     {
1102         typedef vector37<
1103               T
1104               ,
1105               typename Vector::item0, typename Vector::item1
1106             , typename Vector::item2, typename Vector::item3
1107             , typename Vector::item4, typename Vector::item5
1108             , typename Vector::item6, typename Vector::item7
1109             , typename Vector::item8, typename Vector::item9
1110             , typename Vector::item10, typename Vector::item11
1111             , typename Vector::item12, typename Vector::item13
1112             , typename Vector::item14, typename Vector::item15
1113             , typename Vector::item16, typename Vector::item17
1114             , typename Vector::item18, typename Vector::item19
1115             , typename Vector::item20, typename Vector::item21
1116             , typename Vector::item22, typename Vector::item23
1117             , typename Vector::item24, typename Vector::item25
1118             , typename Vector::item26, typename Vector::item27
1119             , typename Vector::item28, typename Vector::item29
1120             , typename Vector::item30, typename Vector::item31
1121             , typename Vector::item32, typename Vector::item33
1122             , typename Vector::item34, typename Vector::item35
1123             > type;
1124     };
1125 };
1126 
1127 template<>
1128 struct pop_front_impl< aux::vector_tag<37> >
1129 {
1130     template< typename Vector > struct apply
1131     {
1132         typedef vector36<
1133               typename Vector::item1, typename Vector::item2
1134             , typename Vector::item3, typename Vector::item4
1135             , typename Vector::item5, typename Vector::item6
1136             , typename Vector::item7, typename Vector::item8
1137             , typename Vector::item9, typename Vector::item10
1138             , typename Vector::item11, typename Vector::item12
1139             , typename Vector::item13, typename Vector::item14
1140             , typename Vector::item15, typename Vector::item16
1141             , typename Vector::item17, typename Vector::item18
1142             , typename Vector::item19, typename Vector::item20
1143             , typename Vector::item21, typename Vector::item22
1144             , typename Vector::item23, typename Vector::item24
1145             , typename Vector::item25, typename Vector::item26
1146             , typename Vector::item27, typename Vector::item28
1147             , typename Vector::item29, typename Vector::item30
1148             , typename Vector::item31, typename Vector::item32
1149             , typename Vector::item33, typename Vector::item34
1150             , typename Vector::item35, typename Vector::item36
1151             > type;
1152     };
1153 };
1154 
1155 template<>
1156 struct push_back_impl< aux::vector_tag<36> >
1157 {
1158     template< typename Vector, typename T > struct apply
1159     {
1160         typedef vector37<
1161               typename Vector::item0, typename Vector::item1
1162             , typename Vector::item2, typename Vector::item3
1163             , typename Vector::item4, typename Vector::item5
1164             , typename Vector::item6, typename Vector::item7
1165             , typename Vector::item8, typename Vector::item9
1166             , typename Vector::item10, typename Vector::item11
1167             , typename Vector::item12, typename Vector::item13
1168             , typename Vector::item14, typename Vector::item15
1169             , typename Vector::item16, typename Vector::item17
1170             , typename Vector::item18, typename Vector::item19
1171             , typename Vector::item20, typename Vector::item21
1172             , typename Vector::item22, typename Vector::item23
1173             , typename Vector::item24, typename Vector::item25
1174             , typename Vector::item26, typename Vector::item27
1175             , typename Vector::item28, typename Vector::item29
1176             , typename Vector::item30, typename Vector::item31
1177             , typename Vector::item32, typename Vector::item33
1178             , typename Vector::item34, typename Vector::item35
1179               ,
1180               T
1181             > type;
1182     };
1183 };
1184 
1185 template<>
1186 struct pop_back_impl< aux::vector_tag<37> >
1187 {
1188     template< typename Vector > struct apply
1189     {
1190         typedef vector36<
1191               typename Vector::item0, typename Vector::item1
1192             , typename Vector::item2, typename Vector::item3
1193             , typename Vector::item4, typename Vector::item5
1194             , typename Vector::item6, typename Vector::item7
1195             , typename Vector::item8, typename Vector::item9
1196             , typename Vector::item10, typename Vector::item11
1197             , typename Vector::item12, typename Vector::item13
1198             , typename Vector::item14, typename Vector::item15
1199             , typename Vector::item16, typename Vector::item17
1200             , typename Vector::item18, typename Vector::item19
1201             , typename Vector::item20, typename Vector::item21
1202             , typename Vector::item22, typename Vector::item23
1203             , typename Vector::item24, typename Vector::item25
1204             , typename Vector::item26, typename Vector::item27
1205             , typename Vector::item28, typename Vector::item29
1206             , typename Vector::item30, typename Vector::item31
1207             , typename Vector::item32, typename Vector::item33
1208             , typename Vector::item34, typename Vector::item35
1209             > type;
1210     };
1211 };
1212 
1213 template< typename V >
1214 struct v_at< V,37 >
1215 {
1216     typedef typename V::item37 type;
1217 };
1218 
1219 template<
1220       typename T0, typename T1, typename T2, typename T3, typename T4
1221     , typename T5, typename T6, typename T7, typename T8, typename T9
1222     , typename T10, typename T11, typename T12, typename T13, typename T14
1223     , typename T15, typename T16, typename T17, typename T18, typename T19
1224     , typename T20, typename T21, typename T22, typename T23, typename T24
1225     , typename T25, typename T26, typename T27, typename T28, typename T29
1226     , typename T30, typename T31, typename T32, typename T33, typename T34
1227     , typename T35, typename T36, typename T37
1228     >
1229 struct vector38
1230 {
1231     typedef aux::vector_tag<38> tag;
1232     typedef vector38 type;
1233     typedef T0 item0;
1234     typedef T1 item1;
1235     typedef T2 item2;
1236     typedef T3 item3;
1237     typedef T4 item4;
1238     typedef T5 item5;
1239     typedef T6 item6;
1240     typedef T7 item7;
1241     typedef T8 item8;
1242     typedef T9 item9;
1243     typedef T10 item10;
1244     typedef T11 item11;
1245     typedef T12 item12;
1246     typedef T13 item13;
1247     typedef T14 item14;
1248     typedef T15 item15;
1249     typedef T16 item16;
1250     typedef T17 item17;
1251     typedef T18 item18;
1252     typedef T19 item19;
1253     typedef T20 item20;
1254     typedef T21 item21;
1255     typedef T22 item22;
1256     typedef T23 item23;
1257     typedef T24 item24;
1258     typedef T25 item25;
1259     typedef T26 item26;
1260     typedef T27 item27;
1261     typedef T28 item28;
1262     typedef T29 item29;
1263     typedef T30 item30;
1264     typedef T31 item31;
1265     typedef T32 item32;
1266     typedef T33 item33;
1267     typedef T34 item34;
1268     typedef T35 item35;
1269     typedef T36 item36;
1270     typedef T37 item37;
1271     
1272 
1273     typedef void_ item38;
1274     typedef T37 back;
1275     typedef v_iter< type,0 > begin;
1276     typedef v_iter< type,38 > end;
1277 };
1278 
1279 template<>
1280 struct push_front_impl< aux::vector_tag<37> >
1281 {
1282     template< typename Vector, typename T > struct apply
1283     {
1284         typedef vector38<
1285               T
1286               ,
1287               typename Vector::item0, typename Vector::item1
1288             , typename Vector::item2, typename Vector::item3
1289             , typename Vector::item4, typename Vector::item5
1290             , typename Vector::item6, typename Vector::item7
1291             , typename Vector::item8, typename Vector::item9
1292             , typename Vector::item10, typename Vector::item11
1293             , typename Vector::item12, typename Vector::item13
1294             , typename Vector::item14, typename Vector::item15
1295             , typename Vector::item16, typename Vector::item17
1296             , typename Vector::item18, typename Vector::item19
1297             , typename Vector::item20, typename Vector::item21
1298             , typename Vector::item22, typename Vector::item23
1299             , typename Vector::item24, typename Vector::item25
1300             , typename Vector::item26, typename Vector::item27
1301             , typename Vector::item28, typename Vector::item29
1302             , typename Vector::item30, typename Vector::item31
1303             , typename Vector::item32, typename Vector::item33
1304             , typename Vector::item34, typename Vector::item35
1305             , typename Vector::item36
1306             > type;
1307     };
1308 };
1309 
1310 template<>
1311 struct pop_front_impl< aux::vector_tag<38> >
1312 {
1313     template< typename Vector > struct apply
1314     {
1315         typedef vector37<
1316               typename Vector::item1, typename Vector::item2
1317             , typename Vector::item3, typename Vector::item4
1318             , typename Vector::item5, typename Vector::item6
1319             , typename Vector::item7, typename Vector::item8
1320             , typename Vector::item9, typename Vector::item10
1321             , typename Vector::item11, typename Vector::item12
1322             , typename Vector::item13, typename Vector::item14
1323             , typename Vector::item15, typename Vector::item16
1324             , typename Vector::item17, typename Vector::item18
1325             , typename Vector::item19, typename Vector::item20
1326             , typename Vector::item21, typename Vector::item22
1327             , typename Vector::item23, typename Vector::item24
1328             , typename Vector::item25, typename Vector::item26
1329             , typename Vector::item27, typename Vector::item28
1330             , typename Vector::item29, typename Vector::item30
1331             , typename Vector::item31, typename Vector::item32
1332             , typename Vector::item33, typename Vector::item34
1333             , typename Vector::item35, typename Vector::item36
1334             , typename Vector::item37
1335             > type;
1336     };
1337 };
1338 
1339 template<>
1340 struct push_back_impl< aux::vector_tag<37> >
1341 {
1342     template< typename Vector, typename T > struct apply
1343     {
1344         typedef vector38<
1345               typename Vector::item0, typename Vector::item1
1346             , typename Vector::item2, typename Vector::item3
1347             , typename Vector::item4, typename Vector::item5
1348             , typename Vector::item6, typename Vector::item7
1349             , typename Vector::item8, typename Vector::item9
1350             , typename Vector::item10, typename Vector::item11
1351             , typename Vector::item12, typename Vector::item13
1352             , typename Vector::item14, typename Vector::item15
1353             , typename Vector::item16, typename Vector::item17
1354             , typename Vector::item18, typename Vector::item19
1355             , typename Vector::item20, typename Vector::item21
1356             , typename Vector::item22, typename Vector::item23
1357             , typename Vector::item24, typename Vector::item25
1358             , typename Vector::item26, typename Vector::item27
1359             , typename Vector::item28, typename Vector::item29
1360             , typename Vector::item30, typename Vector::item31
1361             , typename Vector::item32, typename Vector::item33
1362             , typename Vector::item34, typename Vector::item35
1363             , typename Vector::item36
1364               ,
1365               T
1366             > type;
1367     };
1368 };
1369 
1370 template<>
1371 struct pop_back_impl< aux::vector_tag<38> >
1372 {
1373     template< typename Vector > struct apply
1374     {
1375         typedef vector37<
1376               typename Vector::item0, typename Vector::item1
1377             , typename Vector::item2, typename Vector::item3
1378             , typename Vector::item4, typename Vector::item5
1379             , typename Vector::item6, typename Vector::item7
1380             , typename Vector::item8, typename Vector::item9
1381             , typename Vector::item10, typename Vector::item11
1382             , typename Vector::item12, typename Vector::item13
1383             , typename Vector::item14, typename Vector::item15
1384             , typename Vector::item16, typename Vector::item17
1385             , typename Vector::item18, typename Vector::item19
1386             , typename Vector::item20, typename Vector::item21
1387             , typename Vector::item22, typename Vector::item23
1388             , typename Vector::item24, typename Vector::item25
1389             , typename Vector::item26, typename Vector::item27
1390             , typename Vector::item28, typename Vector::item29
1391             , typename Vector::item30, typename Vector::item31
1392             , typename Vector::item32, typename Vector::item33
1393             , typename Vector::item34, typename Vector::item35
1394             , typename Vector::item36
1395             > type;
1396     };
1397 };
1398 
1399 template< typename V >
1400 struct v_at< V,38 >
1401 {
1402     typedef typename V::item38 type;
1403 };
1404 
1405 template<
1406       typename T0, typename T1, typename T2, typename T3, typename T4
1407     , typename T5, typename T6, typename T7, typename T8, typename T9
1408     , typename T10, typename T11, typename T12, typename T13, typename T14
1409     , typename T15, typename T16, typename T17, typename T18, typename T19
1410     , typename T20, typename T21, typename T22, typename T23, typename T24
1411     , typename T25, typename T26, typename T27, typename T28, typename T29
1412     , typename T30, typename T31, typename T32, typename T33, typename T34
1413     , typename T35, typename T36, typename T37, typename T38
1414     >
1415 struct vector39
1416 {
1417     typedef aux::vector_tag<39> tag;
1418     typedef vector39 type;
1419     typedef T0 item0;
1420     typedef T1 item1;
1421     typedef T2 item2;
1422     typedef T3 item3;
1423     typedef T4 item4;
1424     typedef T5 item5;
1425     typedef T6 item6;
1426     typedef T7 item7;
1427     typedef T8 item8;
1428     typedef T9 item9;
1429     typedef T10 item10;
1430     typedef T11 item11;
1431     typedef T12 item12;
1432     typedef T13 item13;
1433     typedef T14 item14;
1434     typedef T15 item15;
1435     typedef T16 item16;
1436     typedef T17 item17;
1437     typedef T18 item18;
1438     typedef T19 item19;
1439     typedef T20 item20;
1440     typedef T21 item21;
1441     typedef T22 item22;
1442     typedef T23 item23;
1443     typedef T24 item24;
1444     typedef T25 item25;
1445     typedef T26 item26;
1446     typedef T27 item27;
1447     typedef T28 item28;
1448     typedef T29 item29;
1449     typedef T30 item30;
1450     typedef T31 item31;
1451     typedef T32 item32;
1452     typedef T33 item33;
1453     typedef T34 item34;
1454     typedef T35 item35;
1455     typedef T36 item36;
1456     typedef T37 item37;
1457     typedef T38 item38;
1458     
1459 
1460     typedef void_ item39;
1461     typedef T38 back;
1462     typedef v_iter< type,0 > begin;
1463     typedef v_iter< type,39 > end;
1464 };
1465 
1466 template<>
1467 struct push_front_impl< aux::vector_tag<38> >
1468 {
1469     template< typename Vector, typename T > struct apply
1470     {
1471         typedef vector39<
1472               T
1473               ,
1474               typename Vector::item0, typename Vector::item1
1475             , typename Vector::item2, typename Vector::item3
1476             , typename Vector::item4, typename Vector::item5
1477             , typename Vector::item6, typename Vector::item7
1478             , typename Vector::item8, typename Vector::item9
1479             , typename Vector::item10, typename Vector::item11
1480             , typename Vector::item12, typename Vector::item13
1481             , typename Vector::item14, typename Vector::item15
1482             , typename Vector::item16, typename Vector::item17
1483             , typename Vector::item18, typename Vector::item19
1484             , typename Vector::item20, typename Vector::item21
1485             , typename Vector::item22, typename Vector::item23
1486             , typename Vector::item24, typename Vector::item25
1487             , typename Vector::item26, typename Vector::item27
1488             , typename Vector::item28, typename Vector::item29
1489             , typename Vector::item30, typename Vector::item31
1490             , typename Vector::item32, typename Vector::item33
1491             , typename Vector::item34, typename Vector::item35
1492             , typename Vector::item36, typename Vector::item37
1493             > type;
1494     };
1495 };
1496 
1497 template<>
1498 struct pop_front_impl< aux::vector_tag<39> >
1499 {
1500     template< typename Vector > struct apply
1501     {
1502         typedef vector38<
1503               typename Vector::item1, typename Vector::item2
1504             , typename Vector::item3, typename Vector::item4
1505             , typename Vector::item5, typename Vector::item6
1506             , typename Vector::item7, typename Vector::item8
1507             , typename Vector::item9, typename Vector::item10
1508             , typename Vector::item11, typename Vector::item12
1509             , typename Vector::item13, typename Vector::item14
1510             , typename Vector::item15, typename Vector::item16
1511             , typename Vector::item17, typename Vector::item18
1512             , typename Vector::item19, typename Vector::item20
1513             , typename Vector::item21, typename Vector::item22
1514             , typename Vector::item23, typename Vector::item24
1515             , typename Vector::item25, typename Vector::item26
1516             , typename Vector::item27, typename Vector::item28
1517             , typename Vector::item29, typename Vector::item30
1518             , typename Vector::item31, typename Vector::item32
1519             , typename Vector::item33, typename Vector::item34
1520             , typename Vector::item35, typename Vector::item36
1521             , typename Vector::item37, typename Vector::item38
1522             > type;
1523     };
1524 };
1525 
1526 template<>
1527 struct push_back_impl< aux::vector_tag<38> >
1528 {
1529     template< typename Vector, typename T > struct apply
1530     {
1531         typedef vector39<
1532               typename Vector::item0, typename Vector::item1
1533             , typename Vector::item2, typename Vector::item3
1534             , typename Vector::item4, typename Vector::item5
1535             , typename Vector::item6, typename Vector::item7
1536             , typename Vector::item8, typename Vector::item9
1537             , typename Vector::item10, typename Vector::item11
1538             , typename Vector::item12, typename Vector::item13
1539             , typename Vector::item14, typename Vector::item15
1540             , typename Vector::item16, typename Vector::item17
1541             , typename Vector::item18, typename Vector::item19
1542             , typename Vector::item20, typename Vector::item21
1543             , typename Vector::item22, typename Vector::item23
1544             , typename Vector::item24, typename Vector::item25
1545             , typename Vector::item26, typename Vector::item27
1546             , typename Vector::item28, typename Vector::item29
1547             , typename Vector::item30, typename Vector::item31
1548             , typename Vector::item32, typename Vector::item33
1549             , typename Vector::item34, typename Vector::item35
1550             , typename Vector::item36, typename Vector::item37
1551               ,
1552               T
1553             > type;
1554     };
1555 };
1556 
1557 template<>
1558 struct pop_back_impl< aux::vector_tag<39> >
1559 {
1560     template< typename Vector > struct apply
1561     {
1562         typedef vector38<
1563               typename Vector::item0, typename Vector::item1
1564             , typename Vector::item2, typename Vector::item3
1565             , typename Vector::item4, typename Vector::item5
1566             , typename Vector::item6, typename Vector::item7
1567             , typename Vector::item8, typename Vector::item9
1568             , typename Vector::item10, typename Vector::item11
1569             , typename Vector::item12, typename Vector::item13
1570             , typename Vector::item14, typename Vector::item15
1571             , typename Vector::item16, typename Vector::item17
1572             , typename Vector::item18, typename Vector::item19
1573             , typename Vector::item20, typename Vector::item21
1574             , typename Vector::item22, typename Vector::item23
1575             , typename Vector::item24, typename Vector::item25
1576             , typename Vector::item26, typename Vector::item27
1577             , typename Vector::item28, typename Vector::item29
1578             , typename Vector::item30, typename Vector::item31
1579             , typename Vector::item32, typename Vector::item33
1580             , typename Vector::item34, typename Vector::item35
1581             , typename Vector::item36, typename Vector::item37
1582             > type;
1583     };
1584 };
1585 
1586 template< typename V >
1587 struct v_at< V,39 >
1588 {
1589     typedef typename V::item39 type;
1590 };
1591 
1592 template<
1593       typename T0, typename T1, typename T2, typename T3, typename T4
1594     , typename T5, typename T6, typename T7, typename T8, typename T9
1595     , typename T10, typename T11, typename T12, typename T13, typename T14
1596     , typename T15, typename T16, typename T17, typename T18, typename T19
1597     , typename T20, typename T21, typename T22, typename T23, typename T24
1598     , typename T25, typename T26, typename T27, typename T28, typename T29
1599     , typename T30, typename T31, typename T32, typename T33, typename T34
1600     , typename T35, typename T36, typename T37, typename T38, typename T39
1601     >
1602 struct vector40
1603 {
1604     typedef aux::vector_tag<40> tag;
1605     typedef vector40 type;
1606     typedef T0 item0;
1607     typedef T1 item1;
1608     typedef T2 item2;
1609     typedef T3 item3;
1610     typedef T4 item4;
1611     typedef T5 item5;
1612     typedef T6 item6;
1613     typedef T7 item7;
1614     typedef T8 item8;
1615     typedef T9 item9;
1616     typedef T10 item10;
1617     typedef T11 item11;
1618     typedef T12 item12;
1619     typedef T13 item13;
1620     typedef T14 item14;
1621     typedef T15 item15;
1622     typedef T16 item16;
1623     typedef T17 item17;
1624     typedef T18 item18;
1625     typedef T19 item19;
1626     typedef T20 item20;
1627     typedef T21 item21;
1628     typedef T22 item22;
1629     typedef T23 item23;
1630     typedef T24 item24;
1631     typedef T25 item25;
1632     typedef T26 item26;
1633     typedef T27 item27;
1634     typedef T28 item28;
1635     typedef T29 item29;
1636     typedef T30 item30;
1637     typedef T31 item31;
1638     typedef T32 item32;
1639     typedef T33 item33;
1640     typedef T34 item34;
1641     typedef T35 item35;
1642     typedef T36 item36;
1643     typedef T37 item37;
1644     typedef T38 item38;
1645     typedef T39 item39;
1646     
1647 
1648     typedef void_ item40;
1649     typedef T39 back;
1650     typedef v_iter< type,0 > begin;
1651     typedef v_iter< type,40 > end;
1652 };
1653 
1654 template<>
1655 struct push_front_impl< aux::vector_tag<39> >
1656 {
1657     template< typename Vector, typename T > struct apply
1658     {
1659         typedef vector40<
1660               T
1661               ,
1662               typename Vector::item0, typename Vector::item1
1663             , typename Vector::item2, typename Vector::item3
1664             , typename Vector::item4, typename Vector::item5
1665             , typename Vector::item6, typename Vector::item7
1666             , typename Vector::item8, typename Vector::item9
1667             , typename Vector::item10, typename Vector::item11
1668             , typename Vector::item12, typename Vector::item13
1669             , typename Vector::item14, typename Vector::item15
1670             , typename Vector::item16, typename Vector::item17
1671             , typename Vector::item18, typename Vector::item19
1672             , typename Vector::item20, typename Vector::item21
1673             , typename Vector::item22, typename Vector::item23
1674             , typename Vector::item24, typename Vector::item25
1675             , typename Vector::item26, typename Vector::item27
1676             , typename Vector::item28, typename Vector::item29
1677             , typename Vector::item30, typename Vector::item31
1678             , typename Vector::item32, typename Vector::item33
1679             , typename Vector::item34, typename Vector::item35
1680             , typename Vector::item36, typename Vector::item37
1681             , typename Vector::item38
1682             > type;
1683     };
1684 };
1685 
1686 template<>
1687 struct pop_front_impl< aux::vector_tag<40> >
1688 {
1689     template< typename Vector > struct apply
1690     {
1691         typedef vector39<
1692               typename Vector::item1, typename Vector::item2
1693             , typename Vector::item3, typename Vector::item4
1694             , typename Vector::item5, typename Vector::item6
1695             , typename Vector::item7, typename Vector::item8
1696             , typename Vector::item9, typename Vector::item10
1697             , typename Vector::item11, typename Vector::item12
1698             , typename Vector::item13, typename Vector::item14
1699             , typename Vector::item15, typename Vector::item16
1700             , typename Vector::item17, typename Vector::item18
1701             , typename Vector::item19, typename Vector::item20
1702             , typename Vector::item21, typename Vector::item22
1703             , typename Vector::item23, typename Vector::item24
1704             , typename Vector::item25, typename Vector::item26
1705             , typename Vector::item27, typename Vector::item28
1706             , typename Vector::item29, typename Vector::item30
1707             , typename Vector::item31, typename Vector::item32
1708             , typename Vector::item33, typename Vector::item34
1709             , typename Vector::item35, typename Vector::item36
1710             , typename Vector::item37, typename Vector::item38
1711             , typename Vector::item39
1712             > type;
1713     };
1714 };
1715 
1716 template<>
1717 struct push_back_impl< aux::vector_tag<39> >
1718 {
1719     template< typename Vector, typename T > struct apply
1720     {
1721         typedef vector40<
1722               typename Vector::item0, typename Vector::item1
1723             , typename Vector::item2, typename Vector::item3
1724             , typename Vector::item4, typename Vector::item5
1725             , typename Vector::item6, typename Vector::item7
1726             , typename Vector::item8, typename Vector::item9
1727             , typename Vector::item10, typename Vector::item11
1728             , typename Vector::item12, typename Vector::item13
1729             , typename Vector::item14, typename Vector::item15
1730             , typename Vector::item16, typename Vector::item17
1731             , typename Vector::item18, typename Vector::item19
1732             , typename Vector::item20, typename Vector::item21
1733             , typename Vector::item22, typename Vector::item23
1734             , typename Vector::item24, typename Vector::item25
1735             , typename Vector::item26, typename Vector::item27
1736             , typename Vector::item28, typename Vector::item29
1737             , typename Vector::item30, typename Vector::item31
1738             , typename Vector::item32, typename Vector::item33
1739             , typename Vector::item34, typename Vector::item35
1740             , typename Vector::item36, typename Vector::item37
1741             , typename Vector::item38
1742               ,
1743               T
1744             > type;
1745     };
1746 };
1747 
1748 template<>
1749 struct pop_back_impl< aux::vector_tag<40> >
1750 {
1751     template< typename Vector > struct apply
1752     {
1753         typedef vector39<
1754               typename Vector::item0, typename Vector::item1
1755             , typename Vector::item2, typename Vector::item3
1756             , typename Vector::item4, typename Vector::item5
1757             , typename Vector::item6, typename Vector::item7
1758             , typename Vector::item8, typename Vector::item9
1759             , typename Vector::item10, typename Vector::item11
1760             , typename Vector::item12, typename Vector::item13
1761             , typename Vector::item14, typename Vector::item15
1762             , typename Vector::item16, typename Vector::item17
1763             , typename Vector::item18, typename Vector::item19
1764             , typename Vector::item20, typename Vector::item21
1765             , typename Vector::item22, typename Vector::item23
1766             , typename Vector::item24, typename Vector::item25
1767             , typename Vector::item26, typename Vector::item27
1768             , typename Vector::item28, typename Vector::item29
1769             , typename Vector::item30, typename Vector::item31
1770             , typename Vector::item32, typename Vector::item33
1771             , typename Vector::item34, typename Vector::item35
1772             , typename Vector::item36, typename Vector::item37
1773             , typename Vector::item38
1774             > type;
1775     };
1776 };
1777 
1778 template< typename V >
1779 struct v_at< V,40 >
1780 {
1781     typedef typename V::item40 type;
1782 };
1783 
1784 }}