PageRenderTime 129ms CodeModel.GetById 17ms app.highlight 104ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp

http://hadesmem.googlecode.com/
C++ Header | 1804 lines | 1632 code | 164 blank | 8 comment | 0 complexity | 271418fdad03d19a794edd438bc5d3f3 MD5 | raw file
   1
   2// Copyright Aleksey Gurtovoy 2000-2004
   3//
   4// Distributed under the Boost Software License, Version 1.0. 
   5// (See accompanying file LICENSE_1_0.txt or copy at 
   6// http://www.boost.org/LICENSE_1_0.txt)
   7//
   8
   9// Preprocessed version of "boost/mpl/vector/vector20.hpp" header
  10// -- DO NOT modify by hand!
  11
  12namespace boost { namespace mpl {
  13
  14template<
  15      typename T0, typename T1, typename T2, typename T3, typename T4
  16    , typename T5, typename T6, typename T7, typename T8, typename T9
  17    , typename T10
  18    >
  19struct vector11
  20{
  21    typedef aux::vector_tag<11> tag;
  22    typedef vector11 type;
  23    typedef T0 item0;
  24    typedef T1 item1;
  25    typedef T2 item2;
  26    typedef T3 item3;
  27    typedef T4 item4;
  28    typedef T5 item5;
  29    typedef T6 item6;
  30    typedef T7 item7;
  31    typedef T8 item8;
  32    typedef T9 item9;
  33    typedef T10 item10;
  34    
  35
  36    typedef void_ item11;
  37    typedef T10 back;
  38    typedef v_iter< type,0 > begin;
  39    typedef v_iter< type,11 > end;
  40};
  41
  42template<>
  43struct push_front_impl< aux::vector_tag<10> >
  44{
  45    template< typename Vector, typename T > struct apply
  46    {
  47        typedef vector11<
  48              T
  49              ,
  50              typename Vector::item0, typename Vector::item1
  51            , typename Vector::item2, typename Vector::item3
  52            , typename Vector::item4, typename Vector::item5
  53            , typename Vector::item6, typename Vector::item7
  54            , typename Vector::item8, typename Vector::item9
  55            > type;
  56    };
  57};
  58
  59template<>
  60struct pop_front_impl< aux::vector_tag<11> >
  61{
  62    template< typename Vector > struct apply
  63    {
  64        typedef vector10<
  65              typename Vector::item1, typename Vector::item2
  66            , typename Vector::item3, typename Vector::item4
  67            , typename Vector::item5, typename Vector::item6
  68            , typename Vector::item7, typename Vector::item8
  69            , typename Vector::item9, typename Vector::item10
  70            > type;
  71    };
  72};
  73
  74template<>
  75struct push_back_impl< aux::vector_tag<10> >
  76{
  77    template< typename Vector, typename T > struct apply
  78    {
  79        typedef vector11<
  80              typename Vector::item0, typename Vector::item1
  81            , typename Vector::item2, typename Vector::item3
  82            , typename Vector::item4, typename Vector::item5
  83            , typename Vector::item6, typename Vector::item7
  84            , typename Vector::item8, typename Vector::item9
  85              ,
  86              T
  87            > type;
  88    };
  89};
  90
  91template<>
  92struct pop_back_impl< aux::vector_tag<11> >
  93{
  94    template< typename Vector > struct apply
  95    {
  96        typedef vector10<
  97              typename Vector::item0, typename Vector::item1
  98            , typename Vector::item2, typename Vector::item3
  99            , typename Vector::item4, typename Vector::item5
 100            , typename Vector::item6, typename Vector::item7
 101            , typename Vector::item8, typename Vector::item9
 102            > type;
 103    };
 104};
 105
 106namespace aux {
 107template<> struct v_at_impl<11>
 108{
 109    template< typename V_ > struct result_
 110    {
 111        typedef typename V_::item11 type;
 112    };
 113};
 114
 115}
 116
 117template<>
 118struct at_impl< aux::vector_tag<11> >
 119{
 120    template< typename V_, typename N > struct apply
 121    {
 122        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
 123            ::template result_<V_>::type type;
 124    };
 125};
 126
 127template<>
 128struct front_impl< aux::vector_tag<11> >
 129{
 130    template< typename Vector > struct apply
 131    {
 132        typedef typename Vector::item0 type;
 133    };
 134};
 135
 136template<>
 137struct back_impl< aux::vector_tag<11> >
 138{
 139    template< typename Vector > struct apply
 140    {
 141        typedef typename Vector::back type;
 142    };
 143};
 144
 145template<>
 146struct empty_impl< aux::vector_tag<11> >
 147{
 148    template< typename Vector > struct apply
 149        : false_
 150    {
 151    };
 152};
 153
 154template<>
 155struct size_impl< aux::vector_tag<11> >
 156{
 157    template< typename Vector > struct apply
 158        : long_<11>
 159    {
 160    };
 161};
 162
 163template<>
 164struct O1_size_impl< aux::vector_tag<11> >
 165    : size_impl< aux::vector_tag<11> >
 166{
 167};
 168
 169template<>
 170struct clear_impl< aux::vector_tag<11> >
 171{
 172    template< typename Vector > struct apply
 173    {
 174        typedef vector0<> type;
 175    };
 176};
 177
 178template<
 179      typename T0, typename T1, typename T2, typename T3, typename T4
 180    , typename T5, typename T6, typename T7, typename T8, typename T9
 181    , typename T10, typename T11
 182    >
 183struct vector12
 184{
 185    typedef aux::vector_tag<12> tag;
 186    typedef vector12 type;
 187    typedef T0 item0;
 188    typedef T1 item1;
 189    typedef T2 item2;
 190    typedef T3 item3;
 191    typedef T4 item4;
 192    typedef T5 item5;
 193    typedef T6 item6;
 194    typedef T7 item7;
 195    typedef T8 item8;
 196    typedef T9 item9;
 197    typedef T10 item10;
 198    typedef T11 item11;
 199    
 200
 201    typedef void_ item12;
 202    typedef T11 back;
 203    typedef v_iter< type,0 > begin;
 204    typedef v_iter< type,12 > end;
 205};
 206
 207template<>
 208struct push_front_impl< aux::vector_tag<11> >
 209{
 210    template< typename Vector, typename T > struct apply
 211    {
 212        typedef vector12<
 213              T
 214              ,
 215              typename Vector::item0, typename Vector::item1
 216            , typename Vector::item2, typename Vector::item3
 217            , typename Vector::item4, typename Vector::item5
 218            , typename Vector::item6, typename Vector::item7
 219            , typename Vector::item8, typename Vector::item9
 220            , typename Vector::item10
 221            > type;
 222    };
 223};
 224
 225template<>
 226struct pop_front_impl< aux::vector_tag<12> >
 227{
 228    template< typename Vector > struct apply
 229    {
 230        typedef vector11<
 231              typename Vector::item1, typename Vector::item2
 232            , typename Vector::item3, typename Vector::item4
 233            , typename Vector::item5, typename Vector::item6
 234            , typename Vector::item7, typename Vector::item8
 235            , typename Vector::item9, typename Vector::item10
 236            , typename Vector::item11
 237            > type;
 238    };
 239};
 240
 241template<>
 242struct push_back_impl< aux::vector_tag<11> >
 243{
 244    template< typename Vector, typename T > struct apply
 245    {
 246        typedef vector12<
 247              typename Vector::item0, typename Vector::item1
 248            , typename Vector::item2, typename Vector::item3
 249            , typename Vector::item4, typename Vector::item5
 250            , typename Vector::item6, typename Vector::item7
 251            , typename Vector::item8, typename Vector::item9
 252            , typename Vector::item10
 253              ,
 254              T
 255            > type;
 256    };
 257};
 258
 259template<>
 260struct pop_back_impl< aux::vector_tag<12> >
 261{
 262    template< typename Vector > struct apply
 263    {
 264        typedef vector11<
 265              typename Vector::item0, typename Vector::item1
 266            , typename Vector::item2, typename Vector::item3
 267            , typename Vector::item4, typename Vector::item5
 268            , typename Vector::item6, typename Vector::item7
 269            , typename Vector::item8, typename Vector::item9
 270            , typename Vector::item10
 271            > type;
 272    };
 273};
 274
 275namespace aux {
 276template<> struct v_at_impl<12>
 277{
 278    template< typename V_ > struct result_
 279    {
 280        typedef typename V_::item12 type;
 281    };
 282};
 283
 284}
 285
 286template<>
 287struct at_impl< aux::vector_tag<12> >
 288{
 289    template< typename V_, typename N > struct apply
 290    {
 291        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
 292            ::template result_<V_>::type type;
 293    };
 294};
 295
 296template<>
 297struct front_impl< aux::vector_tag<12> >
 298{
 299    template< typename Vector > struct apply
 300    {
 301        typedef typename Vector::item0 type;
 302    };
 303};
 304
 305template<>
 306struct back_impl< aux::vector_tag<12> >
 307{
 308    template< typename Vector > struct apply
 309    {
 310        typedef typename Vector::back type;
 311    };
 312};
 313
 314template<>
 315struct empty_impl< aux::vector_tag<12> >
 316{
 317    template< typename Vector > struct apply
 318        : false_
 319    {
 320    };
 321};
 322
 323template<>
 324struct size_impl< aux::vector_tag<12> >
 325{
 326    template< typename Vector > struct apply
 327        : long_<12>
 328    {
 329    };
 330};
 331
 332template<>
 333struct O1_size_impl< aux::vector_tag<12> >
 334    : size_impl< aux::vector_tag<12> >
 335{
 336};
 337
 338template<>
 339struct clear_impl< aux::vector_tag<12> >
 340{
 341    template< typename Vector > struct apply
 342    {
 343        typedef vector0<> type;
 344    };
 345};
 346
 347template<
 348      typename T0, typename T1, typename T2, typename T3, typename T4
 349    , typename T5, typename T6, typename T7, typename T8, typename T9
 350    , typename T10, typename T11, typename T12
 351    >
 352struct vector13
 353{
 354    typedef aux::vector_tag<13> tag;
 355    typedef vector13 type;
 356    typedef T0 item0;
 357    typedef T1 item1;
 358    typedef T2 item2;
 359    typedef T3 item3;
 360    typedef T4 item4;
 361    typedef T5 item5;
 362    typedef T6 item6;
 363    typedef T7 item7;
 364    typedef T8 item8;
 365    typedef T9 item9;
 366    typedef T10 item10;
 367    typedef T11 item11;
 368    typedef T12 item12;
 369    
 370
 371    typedef void_ item13;
 372    typedef T12 back;
 373    typedef v_iter< type,0 > begin;
 374    typedef v_iter< type,13 > end;
 375};
 376
 377template<>
 378struct push_front_impl< aux::vector_tag<12> >
 379{
 380    template< typename Vector, typename T > struct apply
 381    {
 382        typedef vector13<
 383              T
 384              ,
 385              typename Vector::item0, typename Vector::item1
 386            , typename Vector::item2, typename Vector::item3
 387            , typename Vector::item4, typename Vector::item5
 388            , typename Vector::item6, typename Vector::item7
 389            , typename Vector::item8, typename Vector::item9
 390            , typename Vector::item10, typename Vector::item11
 391            > type;
 392    };
 393};
 394
 395template<>
 396struct pop_front_impl< aux::vector_tag<13> >
 397{
 398    template< typename Vector > struct apply
 399    {
 400        typedef vector12<
 401              typename Vector::item1, typename Vector::item2
 402            , typename Vector::item3, typename Vector::item4
 403            , typename Vector::item5, typename Vector::item6
 404            , typename Vector::item7, typename Vector::item8
 405            , typename Vector::item9, typename Vector::item10
 406            , typename Vector::item11, typename Vector::item12
 407            > type;
 408    };
 409};
 410
 411template<>
 412struct push_back_impl< aux::vector_tag<12> >
 413{
 414    template< typename Vector, typename T > struct apply
 415    {
 416        typedef vector13<
 417              typename Vector::item0, typename Vector::item1
 418            , typename Vector::item2, typename Vector::item3
 419            , typename Vector::item4, typename Vector::item5
 420            , typename Vector::item6, typename Vector::item7
 421            , typename Vector::item8, typename Vector::item9
 422            , typename Vector::item10, typename Vector::item11
 423              ,
 424              T
 425            > type;
 426    };
 427};
 428
 429template<>
 430struct pop_back_impl< aux::vector_tag<13> >
 431{
 432    template< typename Vector > struct apply
 433    {
 434        typedef vector12<
 435              typename Vector::item0, typename Vector::item1
 436            , typename Vector::item2, typename Vector::item3
 437            , typename Vector::item4, typename Vector::item5
 438            , typename Vector::item6, typename Vector::item7
 439            , typename Vector::item8, typename Vector::item9
 440            , typename Vector::item10, typename Vector::item11
 441            > type;
 442    };
 443};
 444
 445namespace aux {
 446template<> struct v_at_impl<13>
 447{
 448    template< typename V_ > struct result_
 449    {
 450        typedef typename V_::item13 type;
 451    };
 452};
 453
 454}
 455
 456template<>
 457struct at_impl< aux::vector_tag<13> >
 458{
 459    template< typename V_, typename N > struct apply
 460    {
 461        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
 462            ::template result_<V_>::type type;
 463    };
 464};
 465
 466template<>
 467struct front_impl< aux::vector_tag<13> >
 468{
 469    template< typename Vector > struct apply
 470    {
 471        typedef typename Vector::item0 type;
 472    };
 473};
 474
 475template<>
 476struct back_impl< aux::vector_tag<13> >
 477{
 478    template< typename Vector > struct apply
 479    {
 480        typedef typename Vector::back type;
 481    };
 482};
 483
 484template<>
 485struct empty_impl< aux::vector_tag<13> >
 486{
 487    template< typename Vector > struct apply
 488        : false_
 489    {
 490    };
 491};
 492
 493template<>
 494struct size_impl< aux::vector_tag<13> >
 495{
 496    template< typename Vector > struct apply
 497        : long_<13>
 498    {
 499    };
 500};
 501
 502template<>
 503struct O1_size_impl< aux::vector_tag<13> >
 504    : size_impl< aux::vector_tag<13> >
 505{
 506};
 507
 508template<>
 509struct clear_impl< aux::vector_tag<13> >
 510{
 511    template< typename Vector > struct apply
 512    {
 513        typedef vector0<> type;
 514    };
 515};
 516
 517template<
 518      typename T0, typename T1, typename T2, typename T3, typename T4
 519    , typename T5, typename T6, typename T7, typename T8, typename T9
 520    , typename T10, typename T11, typename T12, typename T13
 521    >
 522struct vector14
 523{
 524    typedef aux::vector_tag<14> tag;
 525    typedef vector14 type;
 526    typedef T0 item0;
 527    typedef T1 item1;
 528    typedef T2 item2;
 529    typedef T3 item3;
 530    typedef T4 item4;
 531    typedef T5 item5;
 532    typedef T6 item6;
 533    typedef T7 item7;
 534    typedef T8 item8;
 535    typedef T9 item9;
 536    typedef T10 item10;
 537    typedef T11 item11;
 538    typedef T12 item12;
 539    typedef T13 item13;
 540    
 541
 542    typedef void_ item14;
 543    typedef T13 back;
 544    typedef v_iter< type,0 > begin;
 545    typedef v_iter< type,14 > end;
 546};
 547
 548template<>
 549struct push_front_impl< aux::vector_tag<13> >
 550{
 551    template< typename Vector, typename T > struct apply
 552    {
 553        typedef vector14<
 554              T
 555              ,
 556              typename Vector::item0, typename Vector::item1
 557            , typename Vector::item2, typename Vector::item3
 558            , typename Vector::item4, typename Vector::item5
 559            , typename Vector::item6, typename Vector::item7
 560            , typename Vector::item8, typename Vector::item9
 561            , typename Vector::item10, typename Vector::item11
 562            , typename Vector::item12
 563            > type;
 564    };
 565};
 566
 567template<>
 568struct pop_front_impl< aux::vector_tag<14> >
 569{
 570    template< typename Vector > struct apply
 571    {
 572        typedef vector13<
 573              typename Vector::item1, typename Vector::item2
 574            , typename Vector::item3, typename Vector::item4
 575            , typename Vector::item5, typename Vector::item6
 576            , typename Vector::item7, typename Vector::item8
 577            , typename Vector::item9, typename Vector::item10
 578            , typename Vector::item11, typename Vector::item12
 579            , typename Vector::item13
 580            > type;
 581    };
 582};
 583
 584template<>
 585struct push_back_impl< aux::vector_tag<13> >
 586{
 587    template< typename Vector, typename T > struct apply
 588    {
 589        typedef vector14<
 590              typename Vector::item0, typename Vector::item1
 591            , typename Vector::item2, typename Vector::item3
 592            , typename Vector::item4, typename Vector::item5
 593            , typename Vector::item6, typename Vector::item7
 594            , typename Vector::item8, typename Vector::item9
 595            , typename Vector::item10, typename Vector::item11
 596            , typename Vector::item12
 597              ,
 598              T
 599            > type;
 600    };
 601};
 602
 603template<>
 604struct pop_back_impl< aux::vector_tag<14> >
 605{
 606    template< typename Vector > struct apply
 607    {
 608        typedef vector13<
 609              typename Vector::item0, typename Vector::item1
 610            , typename Vector::item2, typename Vector::item3
 611            , typename Vector::item4, typename Vector::item5
 612            , typename Vector::item6, typename Vector::item7
 613            , typename Vector::item8, typename Vector::item9
 614            , typename Vector::item10, typename Vector::item11
 615            , typename Vector::item12
 616            > type;
 617    };
 618};
 619
 620namespace aux {
 621template<> struct v_at_impl<14>
 622{
 623    template< typename V_ > struct result_
 624    {
 625        typedef typename V_::item14 type;
 626    };
 627};
 628
 629}
 630
 631template<>
 632struct at_impl< aux::vector_tag<14> >
 633{
 634    template< typename V_, typename N > struct apply
 635    {
 636        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
 637            ::template result_<V_>::type type;
 638    };
 639};
 640
 641template<>
 642struct front_impl< aux::vector_tag<14> >
 643{
 644    template< typename Vector > struct apply
 645    {
 646        typedef typename Vector::item0 type;
 647    };
 648};
 649
 650template<>
 651struct back_impl< aux::vector_tag<14> >
 652{
 653    template< typename Vector > struct apply
 654    {
 655        typedef typename Vector::back type;
 656    };
 657};
 658
 659template<>
 660struct empty_impl< aux::vector_tag<14> >
 661{
 662    template< typename Vector > struct apply
 663        : false_
 664    {
 665    };
 666};
 667
 668template<>
 669struct size_impl< aux::vector_tag<14> >
 670{
 671    template< typename Vector > struct apply
 672        : long_<14>
 673    {
 674    };
 675};
 676
 677template<>
 678struct O1_size_impl< aux::vector_tag<14> >
 679    : size_impl< aux::vector_tag<14> >
 680{
 681};
 682
 683template<>
 684struct clear_impl< aux::vector_tag<14> >
 685{
 686    template< typename Vector > struct apply
 687    {
 688        typedef vector0<> type;
 689    };
 690};
 691
 692template<
 693      typename T0, typename T1, typename T2, typename T3, typename T4
 694    , typename T5, typename T6, typename T7, typename T8, typename T9
 695    , typename T10, typename T11, typename T12, typename T13, typename T14
 696    >
 697struct vector15
 698{
 699    typedef aux::vector_tag<15> tag;
 700    typedef vector15 type;
 701    typedef T0 item0;
 702    typedef T1 item1;
 703    typedef T2 item2;
 704    typedef T3 item3;
 705    typedef T4 item4;
 706    typedef T5 item5;
 707    typedef T6 item6;
 708    typedef T7 item7;
 709    typedef T8 item8;
 710    typedef T9 item9;
 711    typedef T10 item10;
 712    typedef T11 item11;
 713    typedef T12 item12;
 714    typedef T13 item13;
 715    typedef T14 item14;
 716    
 717
 718    typedef void_ item15;
 719    typedef T14 back;
 720    typedef v_iter< type,0 > begin;
 721    typedef v_iter< type,15 > end;
 722};
 723
 724template<>
 725struct push_front_impl< aux::vector_tag<14> >
 726{
 727    template< typename Vector, typename T > struct apply
 728    {
 729        typedef vector15<
 730              T
 731              ,
 732              typename Vector::item0, typename Vector::item1
 733            , typename Vector::item2, typename Vector::item3
 734            , typename Vector::item4, typename Vector::item5
 735            , typename Vector::item6, typename Vector::item7
 736            , typename Vector::item8, typename Vector::item9
 737            , typename Vector::item10, typename Vector::item11
 738            , typename Vector::item12, typename Vector::item13
 739            > type;
 740    };
 741};
 742
 743template<>
 744struct pop_front_impl< aux::vector_tag<15> >
 745{
 746    template< typename Vector > struct apply
 747    {
 748        typedef vector14<
 749              typename Vector::item1, typename Vector::item2
 750            , typename Vector::item3, typename Vector::item4
 751            , typename Vector::item5, typename Vector::item6
 752            , typename Vector::item7, typename Vector::item8
 753            , typename Vector::item9, typename Vector::item10
 754            , typename Vector::item11, typename Vector::item12
 755            , typename Vector::item13, typename Vector::item14
 756            > type;
 757    };
 758};
 759
 760template<>
 761struct push_back_impl< aux::vector_tag<14> >
 762{
 763    template< typename Vector, typename T > struct apply
 764    {
 765        typedef vector15<
 766              typename Vector::item0, typename Vector::item1
 767            , typename Vector::item2, typename Vector::item3
 768            , typename Vector::item4, typename Vector::item5
 769            , typename Vector::item6, typename Vector::item7
 770            , typename Vector::item8, typename Vector::item9
 771            , typename Vector::item10, typename Vector::item11
 772            , typename Vector::item12, typename Vector::item13
 773              ,
 774              T
 775            > type;
 776    };
 777};
 778
 779template<>
 780struct pop_back_impl< aux::vector_tag<15> >
 781{
 782    template< typename Vector > struct apply
 783    {
 784        typedef vector14<
 785              typename Vector::item0, typename Vector::item1
 786            , typename Vector::item2, typename Vector::item3
 787            , typename Vector::item4, typename Vector::item5
 788            , typename Vector::item6, typename Vector::item7
 789            , typename Vector::item8, typename Vector::item9
 790            , typename Vector::item10, typename Vector::item11
 791            , typename Vector::item12, typename Vector::item13
 792            > type;
 793    };
 794};
 795
 796namespace aux {
 797template<> struct v_at_impl<15>
 798{
 799    template< typename V_ > struct result_
 800    {
 801        typedef typename V_::item15 type;
 802    };
 803};
 804
 805}
 806
 807template<>
 808struct at_impl< aux::vector_tag<15> >
 809{
 810    template< typename V_, typename N > struct apply
 811    {
 812        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
 813            ::template result_<V_>::type type;
 814    };
 815};
 816
 817template<>
 818struct front_impl< aux::vector_tag<15> >
 819{
 820    template< typename Vector > struct apply
 821    {
 822        typedef typename Vector::item0 type;
 823    };
 824};
 825
 826template<>
 827struct back_impl< aux::vector_tag<15> >
 828{
 829    template< typename Vector > struct apply
 830    {
 831        typedef typename Vector::back type;
 832    };
 833};
 834
 835template<>
 836struct empty_impl< aux::vector_tag<15> >
 837{
 838    template< typename Vector > struct apply
 839        : false_
 840    {
 841    };
 842};
 843
 844template<>
 845struct size_impl< aux::vector_tag<15> >
 846{
 847    template< typename Vector > struct apply
 848        : long_<15>
 849    {
 850    };
 851};
 852
 853template<>
 854struct O1_size_impl< aux::vector_tag<15> >
 855    : size_impl< aux::vector_tag<15> >
 856{
 857};
 858
 859template<>
 860struct clear_impl< aux::vector_tag<15> >
 861{
 862    template< typename Vector > struct apply
 863    {
 864        typedef vector0<> type;
 865    };
 866};
 867
 868template<
 869      typename T0, typename T1, typename T2, typename T3, typename T4
 870    , typename T5, typename T6, typename T7, typename T8, typename T9
 871    , typename T10, typename T11, typename T12, typename T13, typename T14
 872    , typename T15
 873    >
 874struct vector16
 875{
 876    typedef aux::vector_tag<16> tag;
 877    typedef vector16 type;
 878    typedef T0 item0;
 879    typedef T1 item1;
 880    typedef T2 item2;
 881    typedef T3 item3;
 882    typedef T4 item4;
 883    typedef T5 item5;
 884    typedef T6 item6;
 885    typedef T7 item7;
 886    typedef T8 item8;
 887    typedef T9 item9;
 888    typedef T10 item10;
 889    typedef T11 item11;
 890    typedef T12 item12;
 891    typedef T13 item13;
 892    typedef T14 item14;
 893    typedef T15 item15;
 894    
 895
 896    typedef void_ item16;
 897    typedef T15 back;
 898    typedef v_iter< type,0 > begin;
 899    typedef v_iter< type,16 > end;
 900};
 901
 902template<>
 903struct push_front_impl< aux::vector_tag<15> >
 904{
 905    template< typename Vector, typename T > struct apply
 906    {
 907        typedef vector16<
 908              T
 909              ,
 910              typename Vector::item0, typename Vector::item1
 911            , typename Vector::item2, typename Vector::item3
 912            , typename Vector::item4, typename Vector::item5
 913            , typename Vector::item6, typename Vector::item7
 914            , typename Vector::item8, typename Vector::item9
 915            , typename Vector::item10, typename Vector::item11
 916            , typename Vector::item12, typename Vector::item13
 917            , typename Vector::item14
 918            > type;
 919    };
 920};
 921
 922template<>
 923struct pop_front_impl< aux::vector_tag<16> >
 924{
 925    template< typename Vector > struct apply
 926    {
 927        typedef vector15<
 928              typename Vector::item1, typename Vector::item2
 929            , typename Vector::item3, typename Vector::item4
 930            , typename Vector::item5, typename Vector::item6
 931            , typename Vector::item7, typename Vector::item8
 932            , typename Vector::item9, typename Vector::item10
 933            , typename Vector::item11, typename Vector::item12
 934            , typename Vector::item13, typename Vector::item14
 935            , typename Vector::item15
 936            > type;
 937    };
 938};
 939
 940template<>
 941struct push_back_impl< aux::vector_tag<15> >
 942{
 943    template< typename Vector, typename T > struct apply
 944    {
 945        typedef vector16<
 946              typename Vector::item0, typename Vector::item1
 947            , typename Vector::item2, typename Vector::item3
 948            , typename Vector::item4, typename Vector::item5
 949            , typename Vector::item6, typename Vector::item7
 950            , typename Vector::item8, typename Vector::item9
 951            , typename Vector::item10, typename Vector::item11
 952            , typename Vector::item12, typename Vector::item13
 953            , typename Vector::item14
 954              ,
 955              T
 956            > type;
 957    };
 958};
 959
 960template<>
 961struct pop_back_impl< aux::vector_tag<16> >
 962{
 963    template< typename Vector > struct apply
 964    {
 965        typedef vector15<
 966              typename Vector::item0, typename Vector::item1
 967            , typename Vector::item2, typename Vector::item3
 968            , typename Vector::item4, typename Vector::item5
 969            , typename Vector::item6, typename Vector::item7
 970            , typename Vector::item8, typename Vector::item9
 971            , typename Vector::item10, typename Vector::item11
 972            , typename Vector::item12, typename Vector::item13
 973            , typename Vector::item14
 974            > type;
 975    };
 976};
 977
 978namespace aux {
 979template<> struct v_at_impl<16>
 980{
 981    template< typename V_ > struct result_
 982    {
 983        typedef typename V_::item16 type;
 984    };
 985};
 986
 987}
 988
 989template<>
 990struct at_impl< aux::vector_tag<16> >
 991{
 992    template< typename V_, typename N > struct apply
 993    {
 994        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
 995            ::template result_<V_>::type type;
 996    };
 997};
 998
 999template<>
1000struct front_impl< aux::vector_tag<16> >
1001{
1002    template< typename Vector > struct apply
1003    {
1004        typedef typename Vector::item0 type;
1005    };
1006};
1007
1008template<>
1009struct back_impl< aux::vector_tag<16> >
1010{
1011    template< typename Vector > struct apply
1012    {
1013        typedef typename Vector::back type;
1014    };
1015};
1016
1017template<>
1018struct empty_impl< aux::vector_tag<16> >
1019{
1020    template< typename Vector > struct apply
1021        : false_
1022    {
1023    };
1024};
1025
1026template<>
1027struct size_impl< aux::vector_tag<16> >
1028{
1029    template< typename Vector > struct apply
1030        : long_<16>
1031    {
1032    };
1033};
1034
1035template<>
1036struct O1_size_impl< aux::vector_tag<16> >
1037    : size_impl< aux::vector_tag<16> >
1038{
1039};
1040
1041template<>
1042struct clear_impl< aux::vector_tag<16> >
1043{
1044    template< typename Vector > struct apply
1045    {
1046        typedef vector0<> type;
1047    };
1048};
1049
1050template<
1051      typename T0, typename T1, typename T2, typename T3, typename T4
1052    , typename T5, typename T6, typename T7, typename T8, typename T9
1053    , typename T10, typename T11, typename T12, typename T13, typename T14
1054    , typename T15, typename T16
1055    >
1056struct vector17
1057{
1058    typedef aux::vector_tag<17> tag;
1059    typedef vector17 type;
1060    typedef T0 item0;
1061    typedef T1 item1;
1062    typedef T2 item2;
1063    typedef T3 item3;
1064    typedef T4 item4;
1065    typedef T5 item5;
1066    typedef T6 item6;
1067    typedef T7 item7;
1068    typedef T8 item8;
1069    typedef T9 item9;
1070    typedef T10 item10;
1071    typedef T11 item11;
1072    typedef T12 item12;
1073    typedef T13 item13;
1074    typedef T14 item14;
1075    typedef T15 item15;
1076    typedef T16 item16;
1077    
1078
1079    typedef void_ item17;
1080    typedef T16 back;
1081    typedef v_iter< type,0 > begin;
1082    typedef v_iter< type,17 > end;
1083};
1084
1085template<>
1086struct push_front_impl< aux::vector_tag<16> >
1087{
1088    template< typename Vector, typename T > struct apply
1089    {
1090        typedef vector17<
1091              T
1092              ,
1093              typename Vector::item0, typename Vector::item1
1094            , typename Vector::item2, typename Vector::item3
1095            , typename Vector::item4, typename Vector::item5
1096            , typename Vector::item6, typename Vector::item7
1097            , typename Vector::item8, typename Vector::item9
1098            , typename Vector::item10, typename Vector::item11
1099            , typename Vector::item12, typename Vector::item13
1100            , typename Vector::item14, typename Vector::item15
1101            > type;
1102    };
1103};
1104
1105template<>
1106struct pop_front_impl< aux::vector_tag<17> >
1107{
1108    template< typename Vector > struct apply
1109    {
1110        typedef vector16<
1111              typename Vector::item1, typename Vector::item2
1112            , typename Vector::item3, typename Vector::item4
1113            , typename Vector::item5, typename Vector::item6
1114            , typename Vector::item7, typename Vector::item8
1115            , typename Vector::item9, typename Vector::item10
1116            , typename Vector::item11, typename Vector::item12
1117            , typename Vector::item13, typename Vector::item14
1118            , typename Vector::item15, typename Vector::item16
1119            > type;
1120    };
1121};
1122
1123template<>
1124struct push_back_impl< aux::vector_tag<16> >
1125{
1126    template< typename Vector, typename T > struct apply
1127    {
1128        typedef vector17<
1129              typename Vector::item0, typename Vector::item1
1130            , typename Vector::item2, typename Vector::item3
1131            , typename Vector::item4, typename Vector::item5
1132            , typename Vector::item6, typename Vector::item7
1133            , typename Vector::item8, typename Vector::item9
1134            , typename Vector::item10, typename Vector::item11
1135            , typename Vector::item12, typename Vector::item13
1136            , typename Vector::item14, typename Vector::item15
1137              ,
1138              T
1139            > type;
1140    };
1141};
1142
1143template<>
1144struct pop_back_impl< aux::vector_tag<17> >
1145{
1146    template< typename Vector > struct apply
1147    {
1148        typedef vector16<
1149              typename Vector::item0, typename Vector::item1
1150            , typename Vector::item2, typename Vector::item3
1151            , typename Vector::item4, typename Vector::item5
1152            , typename Vector::item6, typename Vector::item7
1153            , typename Vector::item8, typename Vector::item9
1154            , typename Vector::item10, typename Vector::item11
1155            , typename Vector::item12, typename Vector::item13
1156            , typename Vector::item14, typename Vector::item15
1157            > type;
1158    };
1159};
1160
1161namespace aux {
1162template<> struct v_at_impl<17>
1163{
1164    template< typename V_ > struct result_
1165    {
1166        typedef typename V_::item17 type;
1167    };
1168};
1169
1170}
1171
1172template<>
1173struct at_impl< aux::vector_tag<17> >
1174{
1175    template< typename V_, typename N > struct apply
1176    {
1177        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1178            ::template result_<V_>::type type;
1179    };
1180};
1181
1182template<>
1183struct front_impl< aux::vector_tag<17> >
1184{
1185    template< typename Vector > struct apply
1186    {
1187        typedef typename Vector::item0 type;
1188    };
1189};
1190
1191template<>
1192struct back_impl< aux::vector_tag<17> >
1193{
1194    template< typename Vector > struct apply
1195    {
1196        typedef typename Vector::back type;
1197    };
1198};
1199
1200template<>
1201struct empty_impl< aux::vector_tag<17> >
1202{
1203    template< typename Vector > struct apply
1204        : false_
1205    {
1206    };
1207};
1208
1209template<>
1210struct size_impl< aux::vector_tag<17> >
1211{
1212    template< typename Vector > struct apply
1213        : long_<17>
1214    {
1215    };
1216};
1217
1218template<>
1219struct O1_size_impl< aux::vector_tag<17> >
1220    : size_impl< aux::vector_tag<17> >
1221{
1222};
1223
1224template<>
1225struct clear_impl< aux::vector_tag<17> >
1226{
1227    template< typename Vector > struct apply
1228    {
1229        typedef vector0<> type;
1230    };
1231};
1232
1233template<
1234      typename T0, typename T1, typename T2, typename T3, typename T4
1235    , typename T5, typename T6, typename T7, typename T8, typename T9
1236    , typename T10, typename T11, typename T12, typename T13, typename T14
1237    , typename T15, typename T16, typename T17
1238    >
1239struct vector18
1240{
1241    typedef aux::vector_tag<18> tag;
1242    typedef vector18 type;
1243    typedef T0 item0;
1244    typedef T1 item1;
1245    typedef T2 item2;
1246    typedef T3 item3;
1247    typedef T4 item4;
1248    typedef T5 item5;
1249    typedef T6 item6;
1250    typedef T7 item7;
1251    typedef T8 item8;
1252    typedef T9 item9;
1253    typedef T10 item10;
1254    typedef T11 item11;
1255    typedef T12 item12;
1256    typedef T13 item13;
1257    typedef T14 item14;
1258    typedef T15 item15;
1259    typedef T16 item16;
1260    typedef T17 item17;
1261    
1262
1263    typedef void_ item18;
1264    typedef T17 back;
1265    typedef v_iter< type,0 > begin;
1266    typedef v_iter< type,18 > end;
1267};
1268
1269template<>
1270struct push_front_impl< aux::vector_tag<17> >
1271{
1272    template< typename Vector, typename T > struct apply
1273    {
1274        typedef vector18<
1275              T
1276              ,
1277              typename Vector::item0, typename Vector::item1
1278            , typename Vector::item2, typename Vector::item3
1279            , typename Vector::item4, typename Vector::item5
1280            , typename Vector::item6, typename Vector::item7
1281            , typename Vector::item8, typename Vector::item9
1282            , typename Vector::item10, typename Vector::item11
1283            , typename Vector::item12, typename Vector::item13
1284            , typename Vector::item14, typename Vector::item15
1285            , typename Vector::item16
1286            > type;
1287    };
1288};
1289
1290template<>
1291struct pop_front_impl< aux::vector_tag<18> >
1292{
1293    template< typename Vector > struct apply
1294    {
1295        typedef vector17<
1296              typename Vector::item1, typename Vector::item2
1297            , typename Vector::item3, typename Vector::item4
1298            , typename Vector::item5, typename Vector::item6
1299            , typename Vector::item7, typename Vector::item8
1300            , typename Vector::item9, typename Vector::item10
1301            , typename Vector::item11, typename Vector::item12
1302            , typename Vector::item13, typename Vector::item14
1303            , typename Vector::item15, typename Vector::item16
1304            , typename Vector::item17
1305            > type;
1306    };
1307};
1308
1309template<>
1310struct push_back_impl< aux::vector_tag<17> >
1311{
1312    template< typename Vector, typename T > struct apply
1313    {
1314        typedef vector18<
1315              typename Vector::item0, typename Vector::item1
1316            , typename Vector::item2, typename Vector::item3
1317            , typename Vector::item4, typename Vector::item5
1318            , typename Vector::item6, typename Vector::item7
1319            , typename Vector::item8, typename Vector::item9
1320            , typename Vector::item10, typename Vector::item11
1321            , typename Vector::item12, typename Vector::item13
1322            , typename Vector::item14, typename Vector::item15
1323            , typename Vector::item16
1324              ,
1325              T
1326            > type;
1327    };
1328};
1329
1330template<>
1331struct pop_back_impl< aux::vector_tag<18> >
1332{
1333    template< typename Vector > struct apply
1334    {
1335        typedef vector17<
1336              typename Vector::item0, typename Vector::item1
1337            , typename Vector::item2, typename Vector::item3
1338            , typename Vector::item4, typename Vector::item5
1339            , typename Vector::item6, typename Vector::item7
1340            , typename Vector::item8, typename Vector::item9
1341            , typename Vector::item10, typename Vector::item11
1342            , typename Vector::item12, typename Vector::item13
1343            , typename Vector::item14, typename Vector::item15
1344            , typename Vector::item16
1345            > type;
1346    };
1347};
1348
1349namespace aux {
1350template<> struct v_at_impl<18>
1351{
1352    template< typename V_ > struct result_
1353    {
1354        typedef typename V_::item18 type;
1355    };
1356};
1357
1358}
1359
1360template<>
1361struct at_impl< aux::vector_tag<18> >
1362{
1363    template< typename V_, typename N > struct apply
1364    {
1365        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1366            ::template result_<V_>::type type;
1367    };
1368};
1369
1370template<>
1371struct front_impl< aux::vector_tag<18> >
1372{
1373    template< typename Vector > struct apply
1374    {
1375        typedef typename Vector::item0 type;
1376    };
1377};
1378
1379template<>
1380struct back_impl< aux::vector_tag<18> >
1381{
1382    template< typename Vector > struct apply
1383    {
1384        typedef typename Vector::back type;
1385    };
1386};
1387
1388template<>
1389struct empty_impl< aux::vector_tag<18> >
1390{
1391    template< typename Vector > struct apply
1392        : false_
1393    {
1394    };
1395};
1396
1397template<>
1398struct size_impl< aux::vector_tag<18> >
1399{
1400    template< typename Vector > struct apply
1401        : long_<18>
1402    {
1403    };
1404};
1405
1406template<>
1407struct O1_size_impl< aux::vector_tag<18> >
1408    : size_impl< aux::vector_tag<18> >
1409{
1410};
1411
1412template<>
1413struct clear_impl< aux::vector_tag<18> >
1414{
1415    template< typename Vector > struct apply
1416    {
1417        typedef vector0<> type;
1418    };
1419};
1420
1421template<
1422      typename T0, typename T1, typename T2, typename T3, typename T4
1423    , typename T5, typename T6, typename T7, typename T8, typename T9
1424    , typename T10, typename T11, typename T12, typename T13, typename T14
1425    , typename T15, typename T16, typename T17, typename T18
1426    >
1427struct vector19
1428{
1429    typedef aux::vector_tag<19> tag;
1430    typedef vector19 type;
1431    typedef T0 item0;
1432    typedef T1 item1;
1433    typedef T2 item2;
1434    typedef T3 item3;
1435    typedef T4 item4;
1436    typedef T5 item5;
1437    typedef T6 item6;
1438    typedef T7 item7;
1439    typedef T8 item8;
1440    typedef T9 item9;
1441    typedef T10 item10;
1442    typedef T11 item11;
1443    typedef T12 item12;
1444    typedef T13 item13;
1445    typedef T14 item14;
1446    typedef T15 item15;
1447    typedef T16 item16;
1448    typedef T17 item17;
1449    typedef T18 item18;
1450    
1451
1452    typedef void_ item19;
1453    typedef T18 back;
1454    typedef v_iter< type,0 > begin;
1455    typedef v_iter< type,19 > end;
1456};
1457
1458template<>
1459struct push_front_impl< aux::vector_tag<18> >
1460{
1461    template< typename Vector, typename T > struct apply
1462    {
1463        typedef vector19<
1464              T
1465              ,
1466              typename Vector::item0, typename Vector::item1
1467            , typename Vector::item2, typename Vector::item3
1468            , typename Vector::item4, typename Vector::item5
1469            , typename Vector::item6, typename Vector::item7
1470            , typename Vector::item8, typename Vector::item9
1471            , typename Vector::item10, typename Vector::item11
1472            , typename Vector::item12, typename Vector::item13
1473            , typename Vector::item14, typename Vector::item15
1474            , typename Vector::item16, typename Vector::item17
1475            > type;
1476    };
1477};
1478
1479template<>
1480struct pop_front_impl< aux::vector_tag<19> >
1481{
1482    template< typename Vector > struct apply
1483    {
1484        typedef vector18<
1485              typename Vector::item1, typename Vector::item2
1486            , typename Vector::item3, typename Vector::item4
1487            , typename Vector::item5, typename Vector::item6
1488            , typename Vector::item7, typename Vector::item8
1489            , typename Vector::item9, typename Vector::item10
1490            , typename Vector::item11, typename Vector::item12
1491            , typename Vector::item13, typename Vector::item14
1492            , typename Vector::item15, typename Vector::item16
1493            , typename Vector::item17, typename Vector::item18
1494            > type;
1495    };
1496};
1497
1498template<>
1499struct push_back_impl< aux::vector_tag<18> >
1500{
1501    template< typename Vector, typename T > struct apply
1502    {
1503        typedef vector19<
1504              typename Vector::item0, typename Vector::item1
1505            , typename Vector::item2, typename Vector::item3
1506            , typename Vector::item4, typename Vector::item5
1507            , typename Vector::item6, typename Vector::item7
1508            , typename Vector::item8, typename Vector::item9
1509            , typename Vector::item10, typename Vector::item11
1510            , typename Vector::item12, typename Vector::item13
1511            , typename Vector::item14, typename Vector::item15
1512            , typename Vector::item16, typename Vector::item17
1513              ,
1514              T
1515            > type;
1516    };
1517};
1518
1519template<>
1520struct pop_back_impl< aux::vector_tag<19> >
1521{
1522    template< typename Vector > struct apply
1523    {
1524        typedef vector18<
1525              typename Vector::item0, typename Vector::item1
1526            , typename Vector::item2, typename Vector::item3
1527            , typename Vector::item4, typename Vector::item5
1528            , typename Vector::item6, typename Vector::item7
1529            , typename Vector::item8, typename Vector::item9
1530            , typename Vector::item10, typename Vector::item11
1531            , typename Vector::item12, typename Vector::item13
1532            , typename Vector::item14, typename Vector::item15
1533            , typename Vector::item16, typename Vector::item17
1534            > type;
1535    };
1536};
1537
1538namespace aux {
1539template<> struct v_at_impl<19>
1540{
1541    template< typename V_ > struct result_
1542    {
1543        typedef typename V_::item19 type;
1544    };
1545};
1546
1547}
1548
1549template<>
1550struct at_impl< aux::vector_tag<19> >
1551{
1552    template< typename V_, typename N > struct apply
1553    {
1554        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1555            ::template result_<V_>::type type;
1556    };
1557};
1558
1559template<>
1560struct front_impl< aux::vector_tag<19> >
1561{
1562    template< typename Vector > struct apply
1563    {
1564        typedef typename Vector::item0 type;
1565    };
1566};
1567
1568template<>
1569struct back_impl< aux::vector_tag<19> >
1570{
1571    template< typename Vector > struct apply
1572    {
1573        typedef typename Vector::back type;
1574    };
1575};
1576
1577template<>
1578struct empty_impl< aux::vector_tag<19> >
1579{
1580    template< typename Vector > struct apply
1581        : false_
1582    {
1583    };
1584};
1585
1586template<>
1587struct size_impl< aux::vector_tag<19> >
1588{
1589    template< typename Vector > struct apply
1590        : long_<19>
1591    {
1592    };
1593};
1594
1595template<>
1596struct O1_size_impl< aux::vector_tag<19> >
1597    : size_impl< aux::vector_tag<19> >
1598{
1599};
1600
1601template<>
1602struct clear_impl< aux::vector_tag<19> >
1603{
1604    template< typename Vector > struct apply
1605    {
1606        typedef vector0<> type;
1607    };
1608};
1609
1610template<
1611      typename T0, typename T1, typename T2, typename T3, typename T4
1612    , typename T5, typename T6, typename T7, typename T8, typename T9
1613    , typename T10, typename T11, typename T12, typename T13, typename T14
1614    , typename T15, typename T16, typename T17, typename T18, typename T19
1615    >
1616struct vector20
1617{
1618    typedef aux::vector_tag<20> tag;
1619    typedef vector20 type;
1620    typedef T0 item0;
1621    typedef T1 item1;
1622    typedef T2 item2;
1623    typedef T3 item3;
1624    typedef T4 item4;
1625    typedef T5 item5;
1626    typedef T6 item6;
1627    typedef T7 item7;
1628    typedef T8 item8;
1629    typedef T9 item9;
1630    typedef T10 item10;
1631    typedef T11 item11;
1632    typedef T12 item12;
1633    typedef T13 item13;
1634    typedef T14 item14;
1635    typedef T15 item15;
1636    typedef T16 item16;
1637    typedef T17 item17;
1638    typedef T18 item18;
1639    typedef T19 item19;
1640    
1641
1642    typedef void_ item20;
1643    typedef T19 back;
1644    typedef v_iter< type,0 > begin;
1645    typedef v_iter< type,20 > end;
1646};
1647
1648template<>
1649struct push_front_impl< aux::vector_tag<19> >
1650{
1651    template< typename Vector, typename T > struct apply
1652    {
1653        typedef vector20<
1654              T
1655              ,
1656              typename Vector::item0, typename Vector::item1
1657            , typename Vector::item2, typename Vector::item3
1658            , typename Vector::item4, typename Vector::item5
1659            , typename Vector::item6, typename Vector::item7
1660            , typename Vector::item8, typename Vector::item9
1661            , typename Vector::item10, typename Vector::item11
1662            , typename Vector::item12, typename Vector::item13
1663            , typename Vector::item14, typename Vector::item15
1664            , typename Vector::item16, typename Vector::item17
1665            , typename Vector::item18
1666            > type;
1667    };
1668};
1669
1670template<>
1671struct pop_front_impl< aux::vector_tag<20> >
1672{
1673    template< typename Vector > struct apply
1674    {
1675        typedef vector19<
1676              typename Vector::item1, typename Vector::item2
1677            , typename Vector::item3, typename Vector::item4
1678            , typename Vector::item5, typename Vector::item6
1679            , typename Vector::item7, typename Vector::item8
1680            , typename Vector::item9, typename Vector::item10
1681            , typename Vector::item11, typename Vector::item12
1682            , typename Vector::item13, typename Vector::item14
1683            , typename Vector::item15, typename Vector::item16
1684            , typename Vector::item17, typename Vector::item18
1685            , typename Vector::item19
1686            > type;
1687    };
1688};
1689
1690template<>
1691struct push_back_impl< aux::vector_tag<19> >
1692{
1693    template< typename Vector, typename T > struct apply
1694    {
1695        typedef vector20<
1696              typename Vector::item0, typename Vector::item1
1697            , typename Vector::item2, typename Vector::item3
1698            , typename Vector::item4, typename Vector::item5
1699            , typename Vector::item6, typename Vector::item7
1700            , typename Vector::item8, typename Vector::item9
1701            , typename Vector::item10, typename Vector::item11
1702            , typename Vector::item12, typename Vector::item13
1703            , typename Vector::item14, typename Vector::item15
1704            , typename Vector::item16, typename Vector::item17
1705            , typename Vector::item18
1706              ,
1707              T
1708            > type;
1709    };
1710};
1711
1712template<>
1713struct pop_back_impl< aux::vector_tag<20> >
1714{
1715    template< typename Vector > struct apply
1716    {
1717        typedef vector19<
1718              typename Vector::item0, typename Vector::item1
1719            , typename Vector::item2, typename Vector::item3
1720            , typename Vector::item4, typename Vector::item5
1721            , typename Vector::item6, typename Vector::item7
1722            , typename Vector::item8, typename Vector::item9
1723            , typename Vector::item10, typename Vector::item11
1724            , typename Vector::item12, typename Vector::item13
1725            , typename Vector::item14, typename Vector::item15
1726            , typename Vector::item16, typename Vector::item17
1727            , typename Vector::item18
1728            > type;
1729    };
1730};
1731
1732namespace aux {
1733template<> struct v_at_impl<20>
1734{
1735    template< typename V_ > struct result_
1736    {
1737        typedef typename V_::item20 type;
1738    };
1739};
1740
1741}
1742
1743template<>
1744struct at_impl< aux::vector_tag<20> >
1745{
1746    template< typename V_, typename N > struct apply
1747    {
1748        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1749            ::template result_<V_>::type type;
1750    };
1751};
1752
1753template<>
1754struct front_impl< aux::vector_tag<20> >
1755{
1756    template< typename Vector > struct apply
1757    {
1758        typedef typename Vector::item0 type;
1759    };
1760};
1761
1762template<>
1763struct back_impl< aux::vector_tag<20> >
1764{
1765    template< typename Vector > struct apply
1766    {
1767        typedef typename Vector::back type;
1768    };
1769};
1770
1771template<>
1772struct empty_impl< aux::vector_tag<20> >
1773{
1774    template< typename Vector > struct apply
1775        : false_
1776    {
1777    };
1778};
1779
1780template<>
1781struct size_impl< aux::vector_tag<20> >
1782{
1783    template< typename Vector > struct apply
1784        : long_<20>
1785    {
1786    };
1787};
1788
1789template<>
1790struct O1_size_impl< aux::vector_tag<20> >
1791    : size_impl< aux::vector_tag<20> >
1792{
1793};
1794
1795template<>
1796struct clear_impl< aux::vector_tag<20> >
1797{
1798    template< typename Vector > struct apply
1799    {
1800        typedef vector0<> type;
1801    };
1802};
1803
1804}}