PageRenderTime 104ms CodeModel.GetById 22ms app.highlight 77ms RepoModel.GetById 1ms app.codeStats 0ms

/extlibs/Boost/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp

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