Back to home page

EIC code displayed by LXR

 
 

    


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

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