Back to home page

EIC code displayed by LXR

 
 

    


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

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