Back to home page

EIC code displayed by LXR

 
 

    


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

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