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/vector40.hpp" header 10 // -- DO NOT modify by hand! 11 12 namespace boost { namespace mpl { 13 14 template< 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, typename T11, typename T12, typename T13, typename T14 18 , typename T15, typename T16, typename T17, typename T18, typename T19 19 , typename T20, typename T21, typename T22, typename T23, typename T24 20 , typename T25, typename T26, typename T27, typename T28, typename T29 21 , typename T30 22 > 23 struct vector31 24 { 25 typedef aux::vector_tag<31> tag; 26 typedef vector31 type; 27 typedef T0 item0; 28 typedef T1 item1; 29 typedef T2 item2; 30 typedef T3 item3; 31 typedef T4 item4; 32 typedef T5 item5; 33 typedef T6 item6; 34 typedef T7 item7; 35 typedef T8 item8; 36 typedef T9 item9; 37 typedef T10 item10; 38 typedef T11 item11; 39 typedef T12 item12; 40 typedef T13 item13; 41 typedef T14 item14; 42 typedef T15 item15; 43 typedef T16 item16; 44 typedef T17 item17; 45 typedef T18 item18; 46 typedef T19 item19; 47 typedef T20 item20; 48 typedef T21 item21; 49 typedef T22 item22; 50 typedef T23 item23; 51 typedef T24 item24; 52 typedef T25 item25; 53 typedef T26 item26; 54 typedef T27 item27; 55 typedef T28 item28; 56 typedef T29 item29; 57 typedef T30 item30; 58 59 60 typedef void_ item31; 61 typedef T30 back; 62 typedef v_iter< type,0 > begin; 63 typedef v_iter< type,31 > end; 64 }; 65 66 template<> 67 struct push_front_impl< aux::vector_tag<30> > 68 { 69 template< typename Vector, typename T > struct apply 70 { 71 typedef vector31< 72 T 73 , 74 typename Vector::item0, typename Vector::item1 75 , typename Vector::item2, typename Vector::item3 76 , typename Vector::item4, typename Vector::item5 77 , typename Vector::item6, typename Vector::item7 78 , typename Vector::item8, typename Vector::item9 79 , typename Vector::item10, typename Vector::item11 80 , typename Vector::item12, typename Vector::item13 81 , typename Vector::item14, typename Vector::item15 82 , typename Vector::item16, typename Vector::item17 83 , typename Vector::item18, typename Vector::item19 84 , typename Vector::item20, typename Vector::item21 85 , typename Vector::item22, typename Vector::item23 86 , typename Vector::item24, typename Vector::item25 87 , typename Vector::item26, typename Vector::item27 88 , typename Vector::item28, typename Vector::item29 89 > type; 90 }; 91 }; 92 93 template<> 94 struct pop_front_impl< aux::vector_tag<31> > 95 { 96 template< typename Vector > struct apply 97 { 98 typedef vector30< 99 typename Vector::item1, typename Vector::item2 100 , typename Vector::item3, typename Vector::item4 101 , typename Vector::item5, typename Vector::item6 102 , typename Vector::item7, typename Vector::item8 103 , typename Vector::item9, typename Vector::item10 104 , typename Vector::item11, typename Vector::item12 105 , typename Vector::item13, typename Vector::item14 106 , typename Vector::item15, typename Vector::item16 107 , typename Vector::item17, typename Vector::item18 108 , typename Vector::item19, typename Vector::item20 109 , typename Vector::item21, typename Vector::item22 110 , typename Vector::item23, typename Vector::item24 111 , typename Vector::item25, typename Vector::item26 112 , typename Vector::item27, typename Vector::item28 113 , typename Vector::item29, typename Vector::item30 114 > type; 115 }; 116 }; 117 118 template<> 119 struct push_back_impl< aux::vector_tag<30> > 120 { 121 template< typename Vector, typename T > struct apply 122 { 123 typedef vector31< 124 typename Vector::item0, typename Vector::item1 125 , typename Vector::item2, typename Vector::item3 126 , typename Vector::item4, typename Vector::item5 127 , typename Vector::item6, typename Vector::item7 128 , typename Vector::item8, typename Vector::item9 129 , typename Vector::item10, typename Vector::item11 130 , typename Vector::item12, typename Vector::item13 131 , typename Vector::item14, typename Vector::item15 132 , typename Vector::item16, typename Vector::item17 133 , typename Vector::item18, typename Vector::item19 134 , typename Vector::item20, typename Vector::item21 135 , typename Vector::item22, typename Vector::item23 136 , typename Vector::item24, typename Vector::item25 137 , typename Vector::item26, typename Vector::item27 138 , typename Vector::item28, typename Vector::item29 139 , 140 T 141 > type; 142 }; 143 }; 144 145 template<> 146 struct pop_back_impl< aux::vector_tag<31> > 147 { 148 template< typename Vector > struct apply 149 { 150 typedef vector30< 151 typename Vector::item0, typename Vector::item1 152 , typename Vector::item2, typename Vector::item3 153 , typename Vector::item4, typename Vector::item5 154 , typename Vector::item6, typename Vector::item7 155 , typename Vector::item8, typename Vector::item9 156 , typename Vector::item10, typename Vector::item11 157 , typename Vector::item12, typename Vector::item13 158 , typename Vector::item14, typename Vector::item15 159 , typename Vector::item16, typename Vector::item17 160 , typename Vector::item18, typename Vector::item19 161 , typename Vector::item20, typename Vector::item21 162 , typename Vector::item22, typename Vector::item23 163 , typename Vector::item24, typename Vector::item25 164 , typename Vector::item26, typename Vector::item27 165 , typename Vector::item28, typename Vector::item29 166 > type; 167 }; 168 }; 169 170 namespace aux { 171 template<> struct v_at_impl<31> 172 { 173 template< typename V_ > struct result_ 174 { 175 typedef typename V_::item31 type; 176 }; 177 }; 178 179 } 180 181 template<> 182 struct at_impl< aux::vector_tag<31> > 183 { 184 template< typename V_, typename N > struct apply 185 { 186 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 187 ::template result_<V_>::type type; 188 }; 189 }; 190 191 template<> 192 struct front_impl< aux::vector_tag<31> > 193 { 194 template< typename Vector > struct apply 195 { 196 typedef typename Vector::item0 type; 197 }; 198 }; 199 200 template<> 201 struct back_impl< aux::vector_tag<31> > 202 { 203 template< typename Vector > struct apply 204 { 205 typedef typename Vector::back type; 206 }; 207 }; 208 209 template<> 210 struct empty_impl< aux::vector_tag<31> > 211 { 212 template< typename Vector > struct apply 213 : false_ 214 { 215 }; 216 }; 217 218 template<> 219 struct size_impl< aux::vector_tag<31> > 220 { 221 template< typename Vector > struct apply 222 : long_<31> 223 { 224 }; 225 }; 226 227 template<> 228 struct O1_size_impl< aux::vector_tag<31> > 229 : size_impl< aux::vector_tag<31> > 230 { 231 }; 232 233 template<> 234 struct clear_impl< aux::vector_tag<31> > 235 { 236 template< typename Vector > struct apply 237 { 238 typedef vector0<> type; 239 }; 240 }; 241 242 template< 243 typename T0, typename T1, typename T2, typename T3, typename T4 244 , typename T5, typename T6, typename T7, typename T8, typename T9 245 , typename T10, typename T11, typename T12, typename T13, typename T14 246 , typename T15, typename T16, typename T17, typename T18, typename T19 247 , typename T20, typename T21, typename T22, typename T23, typename T24 248 , typename T25, typename T26, typename T27, typename T28, typename T29 249 , typename T30, typename T31 250 > 251 struct vector32 252 { 253 typedef aux::vector_tag<32> tag; 254 typedef vector32 type; 255 typedef T0 item0; 256 typedef T1 item1; 257 typedef T2 item2; 258 typedef T3 item3; 259 typedef T4 item4; 260 typedef T5 item5; 261 typedef T6 item6; 262 typedef T7 item7; 263 typedef T8 item8; 264 typedef T9 item9; 265 typedef T10 item10; 266 typedef T11 item11; 267 typedef T12 item12; 268 typedef T13 item13; 269 typedef T14 item14; 270 typedef T15 item15; 271 typedef T16 item16; 272 typedef T17 item17; 273 typedef T18 item18; 274 typedef T19 item19; 275 typedef T20 item20; 276 typedef T21 item21; 277 typedef T22 item22; 278 typedef T23 item23; 279 typedef T24 item24; 280 typedef T25 item25; 281 typedef T26 item26; 282 typedef T27 item27; 283 typedef T28 item28; 284 typedef T29 item29; 285 typedef T30 item30; 286 typedef T31 item31; 287 288 289 typedef void_ item32; 290 typedef T31 back; 291 typedef v_iter< type,0 > begin; 292 typedef v_iter< type,32 > end; 293 }; 294 295 template<> 296 struct push_front_impl< aux::vector_tag<31> > 297 { 298 template< typename Vector, typename T > struct apply 299 { 300 typedef vector32< 301 T 302 , 303 typename Vector::item0, typename Vector::item1 304 , typename Vector::item2, typename Vector::item3 305 , typename Vector::item4, typename Vector::item5 306 , typename Vector::item6, typename Vector::item7 307 , typename Vector::item8, typename Vector::item9 308 , typename Vector::item10, typename Vector::item11 309 , typename Vector::item12, typename Vector::item13 310 , typename Vector::item14, typename Vector::item15 311 , typename Vector::item16, typename Vector::item17 312 , typename Vector::item18, typename Vector::item19 313 , typename Vector::item20, typename Vector::item21 314 , typename Vector::item22, typename Vector::item23 315 , typename Vector::item24, typename Vector::item25 316 , typename Vector::item26, typename Vector::item27 317 , typename Vector::item28, typename Vector::item29 318 , typename Vector::item30 319 > type; 320 }; 321 }; 322 323 template<> 324 struct pop_front_impl< aux::vector_tag<32> > 325 { 326 template< typename Vector > struct apply 327 { 328 typedef vector31< 329 typename Vector::item1, typename Vector::item2 330 , typename Vector::item3, typename Vector::item4 331 , typename Vector::item5, typename Vector::item6 332 , typename Vector::item7, typename Vector::item8 333 , typename Vector::item9, typename Vector::item10 334 , typename Vector::item11, typename Vector::item12 335 , typename Vector::item13, typename Vector::item14 336 , typename Vector::item15, typename Vector::item16 337 , typename Vector::item17, typename Vector::item18 338 , typename Vector::item19, typename Vector::item20 339 , typename Vector::item21, typename Vector::item22 340 , typename Vector::item23, typename Vector::item24 341 , typename Vector::item25, typename Vector::item26 342 , typename Vector::item27, typename Vector::item28 343 , typename Vector::item29, typename Vector::item30 344 , typename Vector::item31 345 > type; 346 }; 347 }; 348 349 template<> 350 struct push_back_impl< aux::vector_tag<31> > 351 { 352 template< typename Vector, typename T > struct apply 353 { 354 typedef vector32< 355 typename Vector::item0, typename Vector::item1 356 , typename Vector::item2, typename Vector::item3 357 , typename Vector::item4, typename Vector::item5 358 , typename Vector::item6, typename Vector::item7 359 , typename Vector::item8, typename Vector::item9 360 , typename Vector::item10, typename Vector::item11 361 , typename Vector::item12, typename Vector::item13 362 , typename Vector::item14, typename Vector::item15 363 , typename Vector::item16, typename Vector::item17 364 , typename Vector::item18, typename Vector::item19 365 , typename Vector::item20, typename Vector::item21 366 , typename Vector::item22, typename Vector::item23 367 , typename Vector::item24, typename Vector::item25 368 , typename Vector::item26, typename Vector::item27 369 , typename Vector::item28, typename Vector::item29 370 , typename Vector::item30 371 , 372 T 373 > type; 374 }; 375 }; 376 377 template<> 378 struct pop_back_impl< aux::vector_tag<32> > 379 { 380 template< typename Vector > struct apply 381 { 382 typedef vector31< 383 typename Vector::item0, typename Vector::item1 384 , typename Vector::item2, typename Vector::item3 385 , typename Vector::item4, typename Vector::item5 386 , typename Vector::item6, typename Vector::item7 387 , typename Vector::item8, typename Vector::item9 388 , typename Vector::item10, typename Vector::item11 389 , typename Vector::item12, typename Vector::item13 390 , typename Vector::item14, typename Vector::item15 391 , typename Vector::item16, typename Vector::item17 392 , typename Vector::item18, typename Vector::item19 393 , typename Vector::item20, typename Vector::item21 394 , typename Vector::item22, typename Vector::item23 395 , typename Vector::item24, typename Vector::item25 396 , typename Vector::item26, typename Vector::item27 397 , typename Vector::item28, typename Vector::item29 398 , typename Vector::item30 399 > type; 400 }; 401 }; 402 403 namespace aux { 404 template<> struct v_at_impl<32> 405 { 406 template< typename V_ > struct result_ 407 { 408 typedef typename V_::item32 type; 409 }; 410 }; 411 412 } 413 414 template<> 415 struct at_impl< aux::vector_tag<32> > 416 { 417 template< typename V_, typename N > struct apply 418 { 419 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 420 ::template result_<V_>::type type; 421 }; 422 }; 423 424 template<> 425 struct front_impl< aux::vector_tag<32> > 426 { 427 template< typename Vector > struct apply 428 { 429 typedef typename Vector::item0 type; 430 }; 431 }; 432 433 template<> 434 struct back_impl< aux::vector_tag<32> > 435 { 436 template< typename Vector > struct apply 437 { 438 typedef typename Vector::back type; 439 }; 440 }; 441 442 template<> 443 struct empty_impl< aux::vector_tag<32> > 444 { 445 template< typename Vector > struct apply 446 : false_ 447 { 448 }; 449 }; 450 451 template<> 452 struct size_impl< aux::vector_tag<32> > 453 { 454 template< typename Vector > struct apply 455 : long_<32> 456 { 457 }; 458 }; 459 460 template<> 461 struct O1_size_impl< aux::vector_tag<32> > 462 : size_impl< aux::vector_tag<32> > 463 { 464 }; 465 466 template<> 467 struct clear_impl< aux::vector_tag<32> > 468 { 469 template< typename Vector > struct apply 470 { 471 typedef vector0<> type; 472 }; 473 }; 474 475 template< 476 typename T0, typename T1, typename T2, typename T3, typename T4 477 , typename T5, typename T6, typename T7, typename T8, typename T9 478 , typename T10, typename T11, typename T12, typename T13, typename T14 479 , typename T15, typename T16, typename T17, typename T18, typename T19 480 , typename T20, typename T21, typename T22, typename T23, typename T24 481 , typename T25, typename T26, typename T27, typename T28, typename T29 482 , typename T30, typename T31, typename T32 483 > 484 struct vector33 485 { 486 typedef aux::vector_tag<33> tag; 487 typedef vector33 type; 488 typedef T0 item0; 489 typedef T1 item1; 490 typedef T2 item2; 491 typedef T3 item3; 492 typedef T4 item4; 493 typedef T5 item5; 494 typedef T6 item6; 495 typedef T7 item7; 496 typedef T8 item8; 497 typedef T9 item9; 498 typedef T10 item10; 499 typedef T11 item11; 500 typedef T12 item12; 501 typedef T13 item13; 502 typedef T14 item14; 503 typedef T15 item15; 504 typedef T16 item16; 505 typedef T17 item17; 506 typedef T18 item18; 507 typedef T19 item19; 508 typedef T20 item20; 509 typedef T21 item21; 510 typedef T22 item22; 511 typedef T23 item23; 512 typedef T24 item24; 513 typedef T25 item25; 514 typedef T26 item26; 515 typedef T27 item27; 516 typedef T28 item28; 517 typedef T29 item29; 518 typedef T30 item30; 519 typedef T31 item31; 520 typedef T32 item32; 521 522 523 typedef void_ item33; 524 typedef T32 back; 525 typedef v_iter< type,0 > begin; 526 typedef v_iter< type,33 > end; 527 }; 528 529 template<> 530 struct push_front_impl< aux::vector_tag<32> > 531 { 532 template< typename Vector, typename T > struct apply 533 { 534 typedef vector33< 535 T 536 , 537 typename Vector::item0, typename Vector::item1 538 , typename Vector::item2, typename Vector::item3 539 , typename Vector::item4, typename Vector::item5 540 , typename Vector::item6, typename Vector::item7 541 , typename Vector::item8, typename Vector::item9 542 , typename Vector::item10, typename Vector::item11 543 , typename Vector::item12, typename Vector::item13 544 , typename Vector::item14, typename Vector::item15 545 , typename Vector::item16, typename Vector::item17 546 , typename Vector::item18, typename Vector::item19 547 , typename Vector::item20, typename Vector::item21 548 , typename Vector::item22, typename Vector::item23 549 , typename Vector::item24, typename Vector::item25 550 , typename Vector::item26, typename Vector::item27 551 , typename Vector::item28, typename Vector::item29 552 , typename Vector::item30, typename Vector::item31 553 > type; 554 }; 555 }; 556 557 template<> 558 struct pop_front_impl< aux::vector_tag<33> > 559 { 560 template< typename Vector > struct apply 561 { 562 typedef vector32< 563 typename Vector::item1, typename Vector::item2 564 , typename Vector::item3, typename Vector::item4 565 , typename Vector::item5, typename Vector::item6 566 , typename Vector::item7, typename Vector::item8 567 , typename Vector::item9, typename Vector::item10 568 , typename Vector::item11, typename Vector::item12 569 , typename Vector::item13, typename Vector::item14 570 , typename Vector::item15, typename Vector::item16 571 , typename Vector::item17, typename Vector::item18 572 , typename Vector::item19, typename Vector::item20 573 , typename Vector::item21, typename Vector::item22 574 , typename Vector::item23, typename Vector::item24 575 , typename Vector::item25, typename Vector::item26 576 , typename Vector::item27, typename Vector::item28 577 , typename Vector::item29, typename Vector::item30 578 , typename Vector::item31, typename Vector::item32 579 > type; 580 }; 581 }; 582 583 template<> 584 struct push_back_impl< aux::vector_tag<32> > 585 { 586 template< typename Vector, typename T > struct apply 587 { 588 typedef vector33< 589 typename Vector::item0, typename Vector::item1 590 , typename Vector::item2, typename Vector::item3 591 , typename Vector::item4, typename Vector::item5 592 , typename Vector::item6, typename Vector::item7 593 , typename Vector::item8, typename Vector::item9 594 , typename Vector::item10, typename Vector::item11 595 , typename Vector::item12, typename Vector::item13 596 , typename Vector::item14, typename Vector::item15 597 , typename Vector::item16, typename Vector::item17 598 , typename Vector::item18, typename Vector::item19 599 , typename Vector::item20, typename Vector::item21 600 , typename Vector::item22, typename Vector::item23 601 , typename Vector::item24, typename Vector::item25 602 , typename Vector::item26, typename Vector::item27 603 , typename Vector::item28, typename Vector::item29 604 , typename Vector::item30, typename Vector::item31 605 , 606 T 607 > type; 608 }; 609 }; 610 611 template<> 612 struct pop_back_impl< aux::vector_tag<33> > 613 { 614 template< typename Vector > struct apply 615 { 616 typedef vector32< 617 typename Vector::item0, typename Vector::item1 618 , typename Vector::item2, typename Vector::item3 619 , typename Vector::item4, typename Vector::item5 620 , typename Vector::item6, typename Vector::item7 621 , typename Vector::item8, typename Vector::item9 622 , typename Vector::item10, typename Vector::item11 623 , typename Vector::item12, typename Vector::item13 624 , typename Vector::item14, typename Vector::item15 625 , typename Vector::item16, typename Vector::item17 626 , typename Vector::item18, typename Vector::item19 627 , typename Vector::item20, typename Vector::item21 628 , typename Vector::item22, typename Vector::item23 629 , typename Vector::item24, typename Vector::item25 630 , typename Vector::item26, typename Vector::item27 631 , typename Vector::item28, typename Vector::item29 632 , typename Vector::item30, typename Vector::item31 633 > type; 634 }; 635 }; 636 637 namespace aux { 638 template<> struct v_at_impl<33> 639 { 640 template< typename V_ > struct result_ 641 { 642 typedef typename V_::item33 type; 643 }; 644 }; 645 646 } 647 648 template<> 649 struct at_impl< aux::vector_tag<33> > 650 { 651 template< typename V_, typename N > struct apply 652 { 653 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 654 ::template result_<V_>::type type; 655 }; 656 }; 657 658 template<> 659 struct front_impl< aux::vector_tag<33> > 660 { 661 template< typename Vector > struct apply 662 { 663 typedef typename Vector::item0 type; 664 }; 665 }; 666 667 template<> 668 struct back_impl< aux::vector_tag<33> > 669 { 670 template< typename Vector > struct apply 671 { 672 typedef typename Vector::back type; 673 }; 674 }; 675 676 template<> 677 struct empty_impl< aux::vector_tag<33> > 678 { 679 template< typename Vector > struct apply 680 : false_ 681 { 682 }; 683 }; 684 685 template<> 686 struct size_impl< aux::vector_tag<33> > 687 { 688 template< typename Vector > struct apply 689 : long_<33> 690 { 691 }; 692 }; 693 694 template<> 695 struct O1_size_impl< aux::vector_tag<33> > 696 : size_impl< aux::vector_tag<33> > 697 { 698 }; 699 700 template<> 701 struct clear_impl< aux::vector_tag<33> > 702 { 703 template< typename Vector > struct apply 704 { 705 typedef vector0<> type; 706 }; 707 }; 708 709 template< 710 typename T0, typename T1, typename T2, typename T3, typename T4 711 , typename T5, typename T6, typename T7, typename T8, typename T9 712 , typename T10, typename T11, typename T12, typename T13, typename T14 713 , typename T15, typename T16, typename T17, typename T18, typename T19 714 , typename T20, typename T21, typename T22, typename T23, typename T24 715 , typename T25, typename T26, typename T27, typename T28, typename T29 716 , typename T30, typename T31, typename T32, typename T33 717 > 718 struct vector34 719 { 720 typedef aux::vector_tag<34> tag; 721 typedef vector34 type; 722 typedef T0 item0; 723 typedef T1 item1; 724 typedef T2 item2; 725 typedef T3 item3; 726 typedef T4 item4; 727 typedef T5 item5; 728 typedef T6 item6; 729 typedef T7 item7; 730 typedef T8 item8; 731 typedef T9 item9; 732 typedef T10 item10; 733 typedef T11 item11; 734 typedef T12 item12; 735 typedef T13 item13; 736 typedef T14 item14; 737 typedef T15 item15; 738 typedef T16 item16; 739 typedef T17 item17; 740 typedef T18 item18; 741 typedef T19 item19; 742 typedef T20 item20; 743 typedef T21 item21; 744 typedef T22 item22; 745 typedef T23 item23; 746 typedef T24 item24; 747 typedef T25 item25; 748 typedef T26 item26; 749 typedef T27 item27; 750 typedef T28 item28; 751 typedef T29 item29; 752 typedef T30 item30; 753 typedef T31 item31; 754 typedef T32 item32; 755 typedef T33 item33; 756 757 758 typedef void_ item34; 759 typedef T33 back; 760 typedef v_iter< type,0 > begin; 761 typedef v_iter< type,34 > end; 762 }; 763 764 template<> 765 struct push_front_impl< aux::vector_tag<33> > 766 { 767 template< typename Vector, typename T > struct apply 768 { 769 typedef vector34< 770 T 771 , 772 typename Vector::item0, typename Vector::item1 773 , typename Vector::item2, typename Vector::item3 774 , typename Vector::item4, typename Vector::item5 775 , typename Vector::item6, typename Vector::item7 776 , typename Vector::item8, typename Vector::item9 777 , typename Vector::item10, typename Vector::item11 778 , typename Vector::item12, typename Vector::item13 779 , typename Vector::item14, typename Vector::item15 780 , typename Vector::item16, typename Vector::item17 781 , typename Vector::item18, typename Vector::item19 782 , typename Vector::item20, typename Vector::item21 783 , typename Vector::item22, typename Vector::item23 784 , typename Vector::item24, typename Vector::item25 785 , typename Vector::item26, typename Vector::item27 786 , typename Vector::item28, typename Vector::item29 787 , typename Vector::item30, typename Vector::item31 788 , typename Vector::item32 789 > type; 790 }; 791 }; 792 793 template<> 794 struct pop_front_impl< aux::vector_tag<34> > 795 { 796 template< typename Vector > struct apply 797 { 798 typedef vector33< 799 typename Vector::item1, typename Vector::item2 800 , typename Vector::item3, typename Vector::item4 801 , typename Vector::item5, typename Vector::item6 802 , typename Vector::item7, typename Vector::item8 803 , typename Vector::item9, typename Vector::item10 804 , typename Vector::item11, typename Vector::item12 805 , typename Vector::item13, typename Vector::item14 806 , typename Vector::item15, typename Vector::item16 807 , typename Vector::item17, typename Vector::item18 808 , typename Vector::item19, typename Vector::item20 809 , typename Vector::item21, typename Vector::item22 810 , typename Vector::item23, typename Vector::item24 811 , typename Vector::item25, typename Vector::item26 812 , typename Vector::item27, typename Vector::item28 813 , typename Vector::item29, typename Vector::item30 814 , typename Vector::item31, typename Vector::item32 815 , typename Vector::item33 816 > type; 817 }; 818 }; 819 820 template<> 821 struct push_back_impl< aux::vector_tag<33> > 822 { 823 template< typename Vector, typename T > struct apply 824 { 825 typedef vector34< 826 typename Vector::item0, typename Vector::item1 827 , typename Vector::item2, typename Vector::item3 828 , typename Vector::item4, typename Vector::item5 829 , typename Vector::item6, typename Vector::item7 830 , typename Vector::item8, typename Vector::item9 831 , typename Vector::item10, typename Vector::item11 832 , typename Vector::item12, typename Vector::item13 833 , typename Vector::item14, typename Vector::item15 834 , typename Vector::item16, typename Vector::item17 835 , typename Vector::item18, typename Vector::item19 836 , typename Vector::item20, typename Vector::item21 837 , typename Vector::item22, typename Vector::item23 838 , typename Vector::item24, typename Vector::item25 839 , typename Vector::item26, typename Vector::item27 840 , typename Vector::item28, typename Vector::item29 841 , typename Vector::item30, typename Vector::item31 842 , typename Vector::item32 843 , 844 T 845 > type; 846 }; 847 }; 848 849 template<> 850 struct pop_back_impl< aux::vector_tag<34> > 851 { 852 template< typename Vector > struct apply 853 { 854 typedef vector33< 855 typename Vector::item0, typename Vector::item1 856 , typename Vector::item2, typename Vector::item3 857 , typename Vector::item4, typename Vector::item5 858 , typename Vector::item6, typename Vector::item7 859 , typename Vector::item8, typename Vector::item9 860 , typename Vector::item10, typename Vector::item11 861 , typename Vector::item12, typename Vector::item13 862 , typename Vector::item14, typename Vector::item15 863 , typename Vector::item16, typename Vector::item17 864 , typename Vector::item18, typename Vector::item19 865 , typename Vector::item20, typename Vector::item21 866 , typename Vector::item22, typename Vector::item23 867 , typename Vector::item24, typename Vector::item25 868 , typename Vector::item26, typename Vector::item27 869 , typename Vector::item28, typename Vector::item29 870 , typename Vector::item30, typename Vector::item31 871 , typename Vector::item32 872 > type; 873 }; 874 }; 875 876 namespace aux { 877 template<> struct v_at_impl<34> 878 { 879 template< typename V_ > struct result_ 880 { 881 typedef typename V_::item34 type; 882 }; 883 }; 884 885 } 886 887 template<> 888 struct at_impl< aux::vector_tag<34> > 889 { 890 template< typename V_, typename N > struct apply 891 { 892 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 893 ::template result_<V_>::type type; 894 }; 895 }; 896 897 template<> 898 struct front_impl< aux::vector_tag<34> > 899 { 900 template< typename Vector > struct apply 901 { 902 typedef typename Vector::item0 type; 903 }; 904 }; 905 906 template<> 907 struct back_impl< aux::vector_tag<34> > 908 { 909 template< typename Vector > struct apply 910 { 911 typedef typename Vector::back type; 912 }; 913 }; 914 915 template<> 916 struct empty_impl< aux::vector_tag<34> > 917 { 918 template< typename Vector > struct apply 919 : false_ 920 { 921 }; 922 }; 923 924 template<> 925 struct size_impl< aux::vector_tag<34> > 926 { 927 template< typename Vector > struct apply 928 : long_<34> 929 { 930 }; 931 }; 932 933 template<> 934 struct O1_size_impl< aux::vector_tag<34> > 935 : size_impl< aux::vector_tag<34> > 936 { 937 }; 938 939 template<> 940 struct clear_impl< aux::vector_tag<34> > 941 { 942 template< typename Vector > struct apply 943 { 944 typedef vector0<> type; 945 }; 946 }; 947 948 template< 949 typename T0, typename T1, typename T2, typename T3, typename T4 950 , typename T5, typename T6, typename T7, typename T8, typename T9 951 , typename T10, typename T11, typename T12, typename T13, typename T14 952 , typename T15, typename T16, typename T17, typename T18, typename T19 953 , typename T20, typename T21, typename T22, typename T23, typename T24 954 , typename T25, typename T26, typename T27, typename T28, typename T29 955 , typename T30, typename T31, typename T32, typename T33, typename T34 956 > 957 struct vector35 958 { 959 typedef aux::vector_tag<35> tag; 960 typedef vector35 type; 961 typedef T0 item0; 962 typedef T1 item1; 963 typedef T2 item2; 964 typedef T3 item3; 965 typedef T4 item4; 966 typedef T5 item5; 967 typedef T6 item6; 968 typedef T7 item7; 969 typedef T8 item8; 970 typedef T9 item9; 971 typedef T10 item10; 972 typedef T11 item11; 973 typedef T12 item12; 974 typedef T13 item13; 975 typedef T14 item14; 976 typedef T15 item15; 977 typedef T16 item16; 978 typedef T17 item17; 979 typedef T18 item18; 980 typedef T19 item19; 981 typedef T20 item20; 982 typedef T21 item21; 983 typedef T22 item22; 984 typedef T23 item23; 985 typedef T24 item24; 986 typedef T25 item25; 987 typedef T26 item26; 988 typedef T27 item27; 989 typedef T28 item28; 990 typedef T29 item29; 991 typedef T30 item30; 992 typedef T31 item31; 993 typedef T32 item32; 994 typedef T33 item33; 995 typedef T34 item34; 996 997 998 typedef void_ item35; 999 typedef T34 back; 1000 typedef v_iter< type,0 > begin; 1001 typedef v_iter< type,35 > end; 1002 }; 1003 1004 template<> 1005 struct push_front_impl< aux::vector_tag<34> > 1006 { 1007 template< typename Vector, typename T > struct apply 1008 { 1009 typedef vector35< 1010 T 1011 , 1012 typename Vector::item0, typename Vector::item1 1013 , typename Vector::item2, typename Vector::item3 1014 , typename Vector::item4, typename Vector::item5 1015 , typename Vector::item6, typename Vector::item7 1016 , typename Vector::item8, typename Vector::item9 1017 , typename Vector::item10, typename Vector::item11 1018 , typename Vector::item12, typename Vector::item13 1019 , typename Vector::item14, typename Vector::item15 1020 , typename Vector::item16, typename Vector::item17 1021 , typename Vector::item18, typename Vector::item19 1022 , typename Vector::item20, typename Vector::item21 1023 , typename Vector::item22, typename Vector::item23 1024 , typename Vector::item24, typename Vector::item25 1025 , typename Vector::item26, typename Vector::item27 1026 , typename Vector::item28, typename Vector::item29 1027 , typename Vector::item30, typename Vector::item31 1028 , typename Vector::item32, typename Vector::item33 1029 > type; 1030 }; 1031 }; 1032 1033 template<> 1034 struct pop_front_impl< aux::vector_tag<35> > 1035 { 1036 template< typename Vector > struct apply 1037 { 1038 typedef vector34< 1039 typename Vector::item1, typename Vector::item2 1040 , typename Vector::item3, typename Vector::item4 1041 , typename Vector::item5, typename Vector::item6 1042 , typename Vector::item7, typename Vector::item8 1043 , typename Vector::item9, typename Vector::item10 1044 , typename Vector::item11, typename Vector::item12 1045 , typename Vector::item13, typename Vector::item14 1046 , typename Vector::item15, typename Vector::item16 1047 , typename Vector::item17, typename Vector::item18 1048 , typename Vector::item19, typename Vector::item20 1049 , typename Vector::item21, typename Vector::item22 1050 , typename Vector::item23, typename Vector::item24 1051 , typename Vector::item25, typename Vector::item26 1052 , typename Vector::item27, typename Vector::item28 1053 , typename Vector::item29, typename Vector::item30 1054 , typename Vector::item31, typename Vector::item32 1055 , typename Vector::item33, typename Vector::item34 1056 > type; 1057 }; 1058 }; 1059 1060 template<> 1061 struct push_back_impl< aux::vector_tag<34> > 1062 { 1063 template< typename Vector, typename T > struct apply 1064 { 1065 typedef vector35< 1066 typename Vector::item0, typename Vector::item1 1067 , typename Vector::item2, typename Vector::item3 1068 , typename Vector::item4, typename Vector::item5 1069 , typename Vector::item6, typename Vector::item7 1070 , typename Vector::item8, typename Vector::item9 1071 , typename Vector::item10, typename Vector::item11 1072 , typename Vector::item12, typename Vector::item13 1073 , typename Vector::item14, typename Vector::item15 1074 , typename Vector::item16, typename Vector::item17 1075 , typename Vector::item18, typename Vector::item19 1076 , typename Vector::item20, typename Vector::item21 1077 , typename Vector::item22, typename Vector::item23 1078 , typename Vector::item24, typename Vector::item25 1079 , typename Vector::item26, typename Vector::item27 1080 , typename Vector::item28, typename Vector::item29 1081 , typename Vector::item30, typename Vector::item31 1082 , typename Vector::item32, typename Vector::item33 1083 , 1084 T 1085 > type; 1086 }; 1087 }; 1088 1089 template<> 1090 struct pop_back_impl< aux::vector_tag<35> > 1091 { 1092 template< typename Vector > struct apply 1093 { 1094 typedef vector34< 1095 typename Vector::item0, typename Vector::item1 1096 , typename Vector::item2, typename Vector::item3 1097 , typename Vector::item4, typename Vector::item5 1098 , typename Vector::item6, typename Vector::item7 1099 , typename Vector::item8, typename Vector::item9 1100 , typename Vector::item10, typename Vector::item11 1101 , typename Vector::item12, typename Vector::item13 1102 , typename Vector::item14, typename Vector::item15 1103 , typename Vector::item16, typename Vector::item17 1104 , typename Vector::item18, typename Vector::item19 1105 , typename Vector::item20, typename Vector::item21 1106 , typename Vector::item22, typename Vector::item23 1107 , typename Vector::item24, typename Vector::item25 1108 , typename Vector::item26, typename Vector::item27 1109 , typename Vector::item28, typename Vector::item29 1110 , typename Vector::item30, typename Vector::item31 1111 , typename Vector::item32, typename Vector::item33 1112 > type; 1113 }; 1114 }; 1115 1116 namespace aux { 1117 template<> struct v_at_impl<35> 1118 { 1119 template< typename V_ > struct result_ 1120 { 1121 typedef typename V_::item35 type; 1122 }; 1123 }; 1124 1125 } 1126 1127 template<> 1128 struct at_impl< aux::vector_tag<35> > 1129 { 1130 template< typename V_, typename N > struct apply 1131 { 1132 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 1133 ::template result_<V_>::type type; 1134 }; 1135 }; 1136 1137 template<> 1138 struct front_impl< aux::vector_tag<35> > 1139 { 1140 template< typename Vector > struct apply 1141 { 1142 typedef typename Vector::item0 type; 1143 }; 1144 }; 1145 1146 template<> 1147 struct back_impl< aux::vector_tag<35> > 1148 { 1149 template< typename Vector > struct apply 1150 { 1151 typedef typename Vector::back type; 1152 }; 1153 }; 1154 1155 template<> 1156 struct empty_impl< aux::vector_tag<35> > 1157 { 1158 template< typename Vector > struct apply 1159 : false_ 1160 { 1161 }; 1162 }; 1163 1164 template<> 1165 struct size_impl< aux::vector_tag<35> > 1166 { 1167 template< typename Vector > struct apply 1168 : long_<35> 1169 { 1170 }; 1171 }; 1172 1173 template<> 1174 struct O1_size_impl< aux::vector_tag<35> > 1175 : size_impl< aux::vector_tag<35> > 1176 { 1177 }; 1178 1179 template<> 1180 struct clear_impl< aux::vector_tag<35> > 1181 { 1182 template< typename Vector > struct apply 1183 { 1184 typedef vector0<> type; 1185 }; 1186 }; 1187 1188 template< 1189 typename T0, typename T1, typename T2, typename T3, typename T4 1190 , typename T5, typename T6, typename T7, typename T8, typename T9 1191 , typename T10, typename T11, typename T12, typename T13, typename T14 1192 , typename T15, typename T16, typename T17, typename T18, typename T19 1193 , typename T20, typename T21, typename T22, typename T23, typename T24 1194 , typename T25, typename T26, typename T27, typename T28, typename T29 1195 , typename T30, typename T31, typename T32, typename T33, typename T34 1196 , typename T35 1197 > 1198 struct vector36 1199 { 1200 typedef aux::vector_tag<36> tag; 1201 typedef vector36 type; 1202 typedef T0 item0; 1203 typedef T1 item1; 1204 typedef T2 item2; 1205 typedef T3 item3; 1206 typedef T4 item4; 1207 typedef T5 item5; 1208 typedef T6 item6; 1209 typedef T7 item7; 1210 typedef T8 item8; 1211 typedef T9 item9; 1212 typedef T10 item10; 1213 typedef T11 item11; 1214 typedef T12 item12; 1215 typedef T13 item13; 1216 typedef T14 item14; 1217 typedef T15 item15; 1218 typedef T16 item16; 1219 typedef T17 item17; 1220 typedef T18 item18; 1221 typedef T19 item19; 1222 typedef T20 item20; 1223 typedef T21 item21; 1224 typedef T22 item22; 1225 typedef T23 item23; 1226 typedef T24 item24; 1227 typedef T25 item25; 1228 typedef T26 item26; 1229 typedef T27 item27; 1230 typedef T28 item28; 1231 typedef T29 item29; 1232 typedef T30 item30; 1233 typedef T31 item31; 1234 typedef T32 item32; 1235 typedef T33 item33; 1236 typedef T34 item34; 1237 typedef T35 item35; 1238 1239 1240 typedef void_ item36; 1241 typedef T35 back; 1242 typedef v_iter< type,0 > begin; 1243 typedef v_iter< type,36 > end; 1244 }; 1245 1246 template<> 1247 struct push_front_impl< aux::vector_tag<35> > 1248 { 1249 template< typename Vector, typename T > struct apply 1250 { 1251 typedef vector36< 1252 T 1253 , 1254 typename Vector::item0, typename Vector::item1 1255 , typename Vector::item2, typename Vector::item3 1256 , typename Vector::item4, typename Vector::item5 1257 , typename Vector::item6, typename Vector::item7 1258 , typename Vector::item8, typename Vector::item9 1259 , typename Vector::item10, typename Vector::item11 1260 , typename Vector::item12, typename Vector::item13 1261 , typename Vector::item14, typename Vector::item15 1262 , typename Vector::item16, typename Vector::item17 1263 , typename Vector::item18, typename Vector::item19 1264 , typename Vector::item20, typename Vector::item21 1265 , typename Vector::item22, typename Vector::item23 1266 , typename Vector::item24, typename Vector::item25 1267 , typename Vector::item26, typename Vector::item27 1268 , typename Vector::item28, typename Vector::item29 1269 , typename Vector::item30, typename Vector::item31 1270 , typename Vector::item32, typename Vector::item33 1271 , typename Vector::item34 1272 > type; 1273 }; 1274 }; 1275 1276 template<> 1277 struct pop_front_impl< aux::vector_tag<36> > 1278 { 1279 template< typename Vector > struct apply 1280 { 1281 typedef vector35< 1282 typename Vector::item1, typename Vector::item2 1283 , typename Vector::item3, typename Vector::item4 1284 , typename Vector::item5, typename Vector::item6 1285 , typename Vector::item7, typename Vector::item8 1286 , typename Vector::item9, typename Vector::item10 1287 , typename Vector::item11, typename Vector::item12 1288 , typename Vector::item13, typename Vector::item14 1289 , typename Vector::item15, typename Vector::item16 1290 , typename Vector::item17, typename Vector::item18 1291 , typename Vector::item19, typename Vector::item20 1292 , typename Vector::item21, typename Vector::item22 1293 , typename Vector::item23, typename Vector::item24 1294 , typename Vector::item25, typename Vector::item26 1295 , typename Vector::item27, typename Vector::item28 1296 , typename Vector::item29, typename Vector::item30 1297 , typename Vector::item31, typename Vector::item32 1298 , typename Vector::item33, typename Vector::item34 1299 , typename Vector::item35 1300 > type; 1301 }; 1302 }; 1303 1304 template<> 1305 struct push_back_impl< aux::vector_tag<35> > 1306 { 1307 template< typename Vector, typename T > struct apply 1308 { 1309 typedef vector36< 1310 typename Vector::item0, typename Vector::item1 1311 , typename Vector::item2, typename Vector::item3 1312 , typename Vector::item4, typename Vector::item5 1313 , typename Vector::item6, typename Vector::item7 1314 , typename Vector::item8, typename Vector::item9 1315 , typename Vector::item10, typename Vector::item11 1316 , typename Vector::item12, typename Vector::item13 1317 , typename Vector::item14, typename Vector::item15 1318 , typename Vector::item16, typename Vector::item17 1319 , typename Vector::item18, typename Vector::item19 1320 , typename Vector::item20, typename Vector::item21 1321 , typename Vector::item22, typename Vector::item23 1322 , typename Vector::item24, typename Vector::item25 1323 , typename Vector::item26, typename Vector::item27 1324 , typename Vector::item28, typename Vector::item29 1325 , typename Vector::item30, typename Vector::item31 1326 , typename Vector::item32, typename Vector::item33 1327 , typename Vector::item34 1328 , 1329 T 1330 > type; 1331 }; 1332 }; 1333 1334 template<> 1335 struct pop_back_impl< aux::vector_tag<36> > 1336 { 1337 template< typename Vector > struct apply 1338 { 1339 typedef vector35< 1340 typename Vector::item0, typename Vector::item1 1341 , typename Vector::item2, typename Vector::item3 1342 , typename Vector::item4, typename Vector::item5 1343 , typename Vector::item6, typename Vector::item7 1344 , typename Vector::item8, typename Vector::item9 1345 , typename Vector::item10, typename Vector::item11 1346 , typename Vector::item12, typename Vector::item13 1347 , typename Vector::item14, typename Vector::item15 1348 , typename Vector::item16, typename Vector::item17 1349 , typename Vector::item18, typename Vector::item19 1350 , typename Vector::item20, typename Vector::item21 1351 , typename Vector::item22, typename Vector::item23 1352 , typename Vector::item24, typename Vector::item25 1353 , typename Vector::item26, typename Vector::item27 1354 , typename Vector::item28, typename Vector::item29 1355 , typename Vector::item30, typename Vector::item31 1356 , typename Vector::item32, typename Vector::item33 1357 , typename Vector::item34 1358 > type; 1359 }; 1360 }; 1361 1362 namespace aux { 1363 template<> struct v_at_impl<36> 1364 { 1365 template< typename V_ > struct result_ 1366 { 1367 typedef typename V_::item36 type; 1368 }; 1369 }; 1370 1371 } 1372 1373 template<> 1374 struct at_impl< aux::vector_tag<36> > 1375 { 1376 template< typename V_, typename N > struct apply 1377 { 1378 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 1379 ::template result_<V_>::type type; 1380 }; 1381 }; 1382 1383 template<> 1384 struct front_impl< aux::vector_tag<36> > 1385 { 1386 template< typename Vector > struct apply 1387 { 1388 typedef typename Vector::item0 type; 1389 }; 1390 }; 1391 1392 template<> 1393 struct back_impl< aux::vector_tag<36> > 1394 { 1395 template< typename Vector > struct apply 1396 { 1397 typedef typename Vector::back type; 1398 }; 1399 }; 1400 1401 template<> 1402 struct empty_impl< aux::vector_tag<36> > 1403 { 1404 template< typename Vector > struct apply 1405 : false_ 1406 { 1407 }; 1408 }; 1409 1410 template<> 1411 struct size_impl< aux::vector_tag<36> > 1412 { 1413 template< typename Vector > struct apply 1414 : long_<36> 1415 { 1416 }; 1417 }; 1418 1419 template<> 1420 struct O1_size_impl< aux::vector_tag<36> > 1421 : size_impl< aux::vector_tag<36> > 1422 { 1423 }; 1424 1425 template<> 1426 struct clear_impl< aux::vector_tag<36> > 1427 { 1428 template< typename Vector > struct apply 1429 { 1430 typedef vector0<> type; 1431 }; 1432 }; 1433 1434 template< 1435 typename T0, typename T1, typename T2, typename T3, typename T4 1436 , typename T5, typename T6, typename T7, typename T8, typename T9 1437 , typename T10, typename T11, typename T12, typename T13, typename T14 1438 , typename T15, typename T16, typename T17, typename T18, typename T19 1439 , typename T20, typename T21, typename T22, typename T23, typename T24 1440 , typename T25, typename T26, typename T27, typename T28, typename T29 1441 , typename T30, typename T31, typename T32, typename T33, typename T34 1442 , typename T35, typename T36 1443 > 1444 struct vector37 1445 { 1446 typedef aux::vector_tag<37> tag; 1447 typedef vector37 type; 1448 typedef T0 item0; 1449 typedef T1 item1; 1450 typedef T2 item2; 1451 typedef T3 item3; 1452 typedef T4 item4; 1453 typedef T5 item5; 1454 typedef T6 item6; 1455 typedef T7 item7; 1456 typedef T8 item8; 1457 typedef T9 item9; 1458 typedef T10 item10; 1459 typedef T11 item11; 1460 typedef T12 item12; 1461 typedef T13 item13; 1462 typedef T14 item14; 1463 typedef T15 item15; 1464 typedef T16 item16; 1465 typedef T17 item17; 1466 typedef T18 item18; 1467 typedef T19 item19; 1468 typedef T20 item20; 1469 typedef T21 item21; 1470 typedef T22 item22; 1471 typedef T23 item23; 1472 typedef T24 item24; 1473 typedef T25 item25; 1474 typedef T26 item26; 1475 typedef T27 item27; 1476 typedef T28 item28; 1477 typedef T29 item29; 1478 typedef T30 item30; 1479 typedef T31 item31; 1480 typedef T32 item32; 1481 typedef T33 item33; 1482 typedef T34 item34; 1483 typedef T35 item35; 1484 typedef T36 item36; 1485 1486 1487 typedef void_ item37; 1488 typedef T36 back; 1489 typedef v_iter< type,0 > begin; 1490 typedef v_iter< type,37 > end; 1491 }; 1492 1493 template<> 1494 struct push_front_impl< aux::vector_tag<36> > 1495 { 1496 template< typename Vector, typename T > struct apply 1497 { 1498 typedef vector37< 1499 T 1500 , 1501 typename Vector::item0, typename Vector::item1 1502 , typename Vector::item2, typename Vector::item3 1503 , typename Vector::item4, typename Vector::item5 1504 , typename Vector::item6, typename Vector::item7 1505 , typename Vector::item8, typename Vector::item9 1506 , typename Vector::item10, typename Vector::item11 1507 , typename Vector::item12, typename Vector::item13 1508 , typename Vector::item14, typename Vector::item15 1509 , typename Vector::item16, typename Vector::item17 1510 , typename Vector::item18, typename Vector::item19 1511 , typename Vector::item20, typename Vector::item21 1512 , typename Vector::item22, typename Vector::item23 1513 , typename Vector::item24, typename Vector::item25 1514 , typename Vector::item26, typename Vector::item27 1515 , typename Vector::item28, typename Vector::item29 1516 , typename Vector::item30, typename Vector::item31 1517 , typename Vector::item32, typename Vector::item33 1518 , typename Vector::item34, typename Vector::item35 1519 > type; 1520 }; 1521 }; 1522 1523 template<> 1524 struct pop_front_impl< aux::vector_tag<37> > 1525 { 1526 template< typename Vector > struct apply 1527 { 1528 typedef vector36< 1529 typename Vector::item1, typename Vector::item2 1530 , typename Vector::item3, typename Vector::item4 1531 , typename Vector::item5, typename Vector::item6 1532 , typename Vector::item7, typename Vector::item8 1533 , typename Vector::item9, typename Vector::item10 1534 , typename Vector::item11, typename Vector::item12 1535 , typename Vector::item13, typename Vector::item14 1536 , typename Vector::item15, typename Vector::item16 1537 , typename Vector::item17, typename Vector::item18 1538 , typename Vector::item19, typename Vector::item20 1539 , typename Vector::item21, typename Vector::item22 1540 , typename Vector::item23, typename Vector::item24 1541 , typename Vector::item25, typename Vector::item26 1542 , typename Vector::item27, typename Vector::item28 1543 , typename Vector::item29, typename Vector::item30 1544 , typename Vector::item31, typename Vector::item32 1545 , typename Vector::item33, typename Vector::item34 1546 , typename Vector::item35, typename Vector::item36 1547 > type; 1548 }; 1549 }; 1550 1551 template<> 1552 struct push_back_impl< aux::vector_tag<36> > 1553 { 1554 template< typename Vector, typename T > struct apply 1555 { 1556 typedef vector37< 1557 typename Vector::item0, typename Vector::item1 1558 , typename Vector::item2, typename Vector::item3 1559 , typename Vector::item4, typename Vector::item5 1560 , typename Vector::item6, typename Vector::item7 1561 , typename Vector::item8, typename Vector::item9 1562 , typename Vector::item10, typename Vector::item11 1563 , typename Vector::item12, typename Vector::item13 1564 , typename Vector::item14, typename Vector::item15 1565 , typename Vector::item16, typename Vector::item17 1566 , typename Vector::item18, typename Vector::item19 1567 , typename Vector::item20, typename Vector::item21 1568 , typename Vector::item22, typename Vector::item23 1569 , typename Vector::item24, typename Vector::item25 1570 , typename Vector::item26, typename Vector::item27 1571 , typename Vector::item28, typename Vector::item29 1572 , typename Vector::item30, typename Vector::item31 1573 , typename Vector::item32, typename Vector::item33 1574 , typename Vector::item34, typename Vector::item35 1575 , 1576 T 1577 > type; 1578 }; 1579 }; 1580 1581 template<> 1582 struct pop_back_impl< aux::vector_tag<37> > 1583 { 1584 template< typename Vector > struct apply 1585 { 1586 typedef vector36< 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, typename Vector::item27 1601 , typename Vector::item28, typename Vector::item29 1602 , typename Vector::item30, typename Vector::item31 1603 , typename Vector::item32, typename Vector::item33 1604 , typename Vector::item34, typename Vector::item35 1605 > type; 1606 }; 1607 }; 1608 1609 namespace aux { 1610 template<> struct v_at_impl<37> 1611 { 1612 template< typename V_ > struct result_ 1613 { 1614 typedef typename V_::item37 type; 1615 }; 1616 }; 1617 1618 } 1619 1620 template<> 1621 struct at_impl< aux::vector_tag<37> > 1622 { 1623 template< typename V_, typename N > struct apply 1624 { 1625 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 1626 ::template result_<V_>::type type; 1627 }; 1628 }; 1629 1630 template<> 1631 struct front_impl< aux::vector_tag<37> > 1632 { 1633 template< typename Vector > struct apply 1634 { 1635 typedef typename Vector::item0 type; 1636 }; 1637 }; 1638 1639 template<> 1640 struct back_impl< aux::vector_tag<37> > 1641 { 1642 template< typename Vector > struct apply 1643 { 1644 typedef typename Vector::back type; 1645 }; 1646 }; 1647 1648 template<> 1649 struct empty_impl< aux::vector_tag<37> > 1650 { 1651 template< typename Vector > struct apply 1652 : false_ 1653 { 1654 }; 1655 }; 1656 1657 template<> 1658 struct size_impl< aux::vector_tag<37> > 1659 { 1660 template< typename Vector > struct apply 1661 : long_<37> 1662 { 1663 }; 1664 }; 1665 1666 template<> 1667 struct O1_size_impl< aux::vector_tag<37> > 1668 : size_impl< aux::vector_tag<37> > 1669 { 1670 }; 1671 1672 template<> 1673 struct clear_impl< aux::vector_tag<37> > 1674 { 1675 template< typename Vector > struct apply 1676 { 1677 typedef vector0<> type; 1678 }; 1679 }; 1680 1681 template< 1682 typename T0, typename T1, typename T2, typename T3, typename T4 1683 , typename T5, typename T6, typename T7, typename T8, typename T9 1684 , typename T10, typename T11, typename T12, typename T13, typename T14 1685 , typename T15, typename T16, typename T17, typename T18, typename T19 1686 , typename T20, typename T21, typename T22, typename T23, typename T24 1687 , typename T25, typename T26, typename T27, typename T28, typename T29 1688 , typename T30, typename T31, typename T32, typename T33, typename T34 1689 , typename T35, typename T36, typename T37 1690 > 1691 struct vector38 1692 { 1693 typedef aux::vector_tag<38> tag; 1694 typedef vector38 type; 1695 typedef T0 item0; 1696 typedef T1 item1; 1697 typedef T2 item2; 1698 typedef T3 item3; 1699 typedef T4 item4; 1700 typedef T5 item5; 1701 typedef T6 item6; 1702 typedef T7 item7; 1703 typedef T8 item8; 1704 typedef T9 item9; 1705 typedef T10 item10; 1706 typedef T11 item11; 1707 typedef T12 item12; 1708 typedef T13 item13; 1709 typedef T14 item14; 1710 typedef T15 item15; 1711 typedef T16 item16; 1712 typedef T17 item17; 1713 typedef T18 item18; 1714 typedef T19 item19; 1715 typedef T20 item20; 1716 typedef T21 item21; 1717 typedef T22 item22; 1718 typedef T23 item23; 1719 typedef T24 item24; 1720 typedef T25 item25; 1721 typedef T26 item26; 1722 typedef T27 item27; 1723 typedef T28 item28; 1724 typedef T29 item29; 1725 typedef T30 item30; 1726 typedef T31 item31; 1727 typedef T32 item32; 1728 typedef T33 item33; 1729 typedef T34 item34; 1730 typedef T35 item35; 1731 typedef T36 item36; 1732 typedef T37 item37; 1733 1734 1735 typedef void_ item38; 1736 typedef T37 back; 1737 typedef v_iter< type,0 > begin; 1738 typedef v_iter< type,38 > end; 1739 }; 1740 1741 template<> 1742 struct push_front_impl< aux::vector_tag<37> > 1743 { 1744 template< typename Vector, typename T > struct apply 1745 { 1746 typedef vector38< 1747 T 1748 , 1749 typename Vector::item0, typename Vector::item1 1750 , typename Vector::item2, typename Vector::item3 1751 , typename Vector::item4, typename Vector::item5 1752 , typename Vector::item6, typename Vector::item7 1753 , typename Vector::item8, typename Vector::item9 1754 , typename Vector::item10, typename Vector::item11 1755 , typename Vector::item12, typename Vector::item13 1756 , typename Vector::item14, typename Vector::item15 1757 , typename Vector::item16, typename Vector::item17 1758 , typename Vector::item18, typename Vector::item19 1759 , typename Vector::item20, typename Vector::item21 1760 , typename Vector::item22, typename Vector::item23 1761 , typename Vector::item24, typename Vector::item25 1762 , typename Vector::item26, typename Vector::item27 1763 , typename Vector::item28, typename Vector::item29 1764 , typename Vector::item30, typename Vector::item31 1765 , typename Vector::item32, typename Vector::item33 1766 , typename Vector::item34, typename Vector::item35 1767 , typename Vector::item36 1768 > type; 1769 }; 1770 }; 1771 1772 template<> 1773 struct pop_front_impl< aux::vector_tag<38> > 1774 { 1775 template< typename Vector > struct apply 1776 { 1777 typedef vector37< 1778 typename Vector::item1, typename Vector::item2 1779 , typename Vector::item3, typename Vector::item4 1780 , typename Vector::item5, typename Vector::item6 1781 , typename Vector::item7, typename Vector::item8 1782 , typename Vector::item9, typename Vector::item10 1783 , typename Vector::item11, typename Vector::item12 1784 , typename Vector::item13, typename Vector::item14 1785 , typename Vector::item15, typename Vector::item16 1786 , typename Vector::item17, typename Vector::item18 1787 , typename Vector::item19, typename Vector::item20 1788 , typename Vector::item21, typename Vector::item22 1789 , typename Vector::item23, typename Vector::item24 1790 , typename Vector::item25, typename Vector::item26 1791 , typename Vector::item27, typename Vector::item28 1792 , typename Vector::item29, typename Vector::item30 1793 , typename Vector::item31, typename Vector::item32 1794 , typename Vector::item33, typename Vector::item34 1795 , typename Vector::item35, typename Vector::item36 1796 , typename Vector::item37 1797 > type; 1798 }; 1799 }; 1800 1801 template<> 1802 struct push_back_impl< aux::vector_tag<37> > 1803 { 1804 template< typename Vector, typename T > struct apply 1805 { 1806 typedef vector38< 1807 typename Vector::item0, typename Vector::item1 1808 , typename Vector::item2, typename Vector::item3 1809 , typename Vector::item4, typename Vector::item5 1810 , typename Vector::item6, typename Vector::item7 1811 , typename Vector::item8, typename Vector::item9 1812 , typename Vector::item10, typename Vector::item11 1813 , typename Vector::item12, typename Vector::item13 1814 , typename Vector::item14, typename Vector::item15 1815 , typename Vector::item16, typename Vector::item17 1816 , typename Vector::item18, typename Vector::item19 1817 , typename Vector::item20, typename Vector::item21 1818 , typename Vector::item22, typename Vector::item23 1819 , typename Vector::item24, typename Vector::item25 1820 , typename Vector::item26, typename Vector::item27 1821 , typename Vector::item28, typename Vector::item29 1822 , typename Vector::item30, typename Vector::item31 1823 , typename Vector::item32, typename Vector::item33 1824 , typename Vector::item34, typename Vector::item35 1825 , typename Vector::item36 1826 , 1827 T 1828 > type; 1829 }; 1830 }; 1831 1832 template<> 1833 struct pop_back_impl< aux::vector_tag<38> > 1834 { 1835 template< typename Vector > struct apply 1836 { 1837 typedef vector37< 1838 typename Vector::item0, typename Vector::item1 1839 , typename Vector::item2, typename Vector::item3 1840 , typename Vector::item4, typename Vector::item5 1841 , typename Vector::item6, typename Vector::item7 1842 , typename Vector::item8, typename Vector::item9 1843 , typename Vector::item10, typename Vector::item11 1844 , typename Vector::item12, typename Vector::item13 1845 , typename Vector::item14, typename Vector::item15 1846 , typename Vector::item16, typename Vector::item17 1847 , typename Vector::item18, typename Vector::item19 1848 , typename Vector::item20, typename Vector::item21 1849 , typename Vector::item22, typename Vector::item23 1850 , typename Vector::item24, typename Vector::item25 1851 , typename Vector::item26, typename Vector::item27 1852 , typename Vector::item28, typename Vector::item29 1853 , typename Vector::item30, typename Vector::item31 1854 , typename Vector::item32, typename Vector::item33 1855 , typename Vector::item34, typename Vector::item35 1856 , typename Vector::item36 1857 > type; 1858 }; 1859 }; 1860 1861 namespace aux { 1862 template<> struct v_at_impl<38> 1863 { 1864 template< typename V_ > struct result_ 1865 { 1866 typedef typename V_::item38 type; 1867 }; 1868 }; 1869 1870 } 1871 1872 template<> 1873 struct at_impl< aux::vector_tag<38> > 1874 { 1875 template< typename V_, typename N > struct apply 1876 { 1877 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 1878 ::template result_<V_>::type type; 1879 }; 1880 }; 1881 1882 template<> 1883 struct front_impl< aux::vector_tag<38> > 1884 { 1885 template< typename Vector > struct apply 1886 { 1887 typedef typename Vector::item0 type; 1888 }; 1889 }; 1890 1891 template<> 1892 struct back_impl< aux::vector_tag<38> > 1893 { 1894 template< typename Vector > struct apply 1895 { 1896 typedef typename Vector::back type; 1897 }; 1898 }; 1899 1900 template<> 1901 struct empty_impl< aux::vector_tag<38> > 1902 { 1903 template< typename Vector > struct apply 1904 : false_ 1905 { 1906 }; 1907 }; 1908 1909 template<> 1910 struct size_impl< aux::vector_tag<38> > 1911 { 1912 template< typename Vector > struct apply 1913 : long_<38> 1914 { 1915 }; 1916 }; 1917 1918 template<> 1919 struct O1_size_impl< aux::vector_tag<38> > 1920 : size_impl< aux::vector_tag<38> > 1921 { 1922 }; 1923 1924 template<> 1925 struct clear_impl< aux::vector_tag<38> > 1926 { 1927 template< typename Vector > struct apply 1928 { 1929 typedef vector0<> type; 1930 }; 1931 }; 1932 1933 template< 1934 typename T0, typename T1, typename T2, typename T3, typename T4 1935 , typename T5, typename T6, typename T7, typename T8, typename T9 1936 , typename T10, typename T11, typename T12, typename T13, typename T14 1937 , typename T15, typename T16, typename T17, typename T18, typename T19 1938 , typename T20, typename T21, typename T22, typename T23, typename T24 1939 , typename T25, typename T26, typename T27, typename T28, typename T29 1940 , typename T30, typename T31, typename T32, typename T33, typename T34 1941 , typename T35, typename T36, typename T37, typename T38 1942 > 1943 struct vector39 1944 { 1945 typedef aux::vector_tag<39> tag; 1946 typedef vector39 type; 1947 typedef T0 item0; 1948 typedef T1 item1; 1949 typedef T2 item2; 1950 typedef T3 item3; 1951 typedef T4 item4; 1952 typedef T5 item5; 1953 typedef T6 item6; 1954 typedef T7 item7; 1955 typedef T8 item8; 1956 typedef T9 item9; 1957 typedef T10 item10; 1958 typedef T11 item11; 1959 typedef T12 item12; 1960 typedef T13 item13; 1961 typedef T14 item14; 1962 typedef T15 item15; 1963 typedef T16 item16; 1964 typedef T17 item17; 1965 typedef T18 item18; 1966 typedef T19 item19; 1967 typedef T20 item20; 1968 typedef T21 item21; 1969 typedef T22 item22; 1970 typedef T23 item23; 1971 typedef T24 item24; 1972 typedef T25 item25; 1973 typedef T26 item26; 1974 typedef T27 item27; 1975 typedef T28 item28; 1976 typedef T29 item29; 1977 typedef T30 item30; 1978 typedef T31 item31; 1979 typedef T32 item32; 1980 typedef T33 item33; 1981 typedef T34 item34; 1982 typedef T35 item35; 1983 typedef T36 item36; 1984 typedef T37 item37; 1985 typedef T38 item38; 1986 1987 1988 typedef void_ item39; 1989 typedef T38 back; 1990 typedef v_iter< type,0 > begin; 1991 typedef v_iter< type,39 > end; 1992 }; 1993 1994 template<> 1995 struct push_front_impl< aux::vector_tag<38> > 1996 { 1997 template< typename Vector, typename T > struct apply 1998 { 1999 typedef vector39< 2000 T 2001 , 2002 typename Vector::item0, typename Vector::item1 2003 , typename Vector::item2, typename Vector::item3 2004 , typename Vector::item4, typename Vector::item5 2005 , typename Vector::item6, typename Vector::item7 2006 , typename Vector::item8, typename Vector::item9 2007 , typename Vector::item10, typename Vector::item11 2008 , typename Vector::item12, typename Vector::item13 2009 , typename Vector::item14, typename Vector::item15 2010 , typename Vector::item16, typename Vector::item17 2011 , typename Vector::item18, typename Vector::item19 2012 , typename Vector::item20, typename Vector::item21 2013 , typename Vector::item22, typename Vector::item23 2014 , typename Vector::item24, typename Vector::item25 2015 , typename Vector::item26, typename Vector::item27 2016 , typename Vector::item28, typename Vector::item29 2017 , typename Vector::item30, typename Vector::item31 2018 , typename Vector::item32, typename Vector::item33 2019 , typename Vector::item34, typename Vector::item35 2020 , typename Vector::item36, typename Vector::item37 2021 > type; 2022 }; 2023 }; 2024 2025 template<> 2026 struct pop_front_impl< aux::vector_tag<39> > 2027 { 2028 template< typename Vector > struct apply 2029 { 2030 typedef vector38< 2031 typename Vector::item1, typename Vector::item2 2032 , typename Vector::item3, typename Vector::item4 2033 , typename Vector::item5, typename Vector::item6 2034 , typename Vector::item7, typename Vector::item8 2035 , typename Vector::item9, typename Vector::item10 2036 , typename Vector::item11, typename Vector::item12 2037 , typename Vector::item13, typename Vector::item14 2038 , typename Vector::item15, typename Vector::item16 2039 , typename Vector::item17, typename Vector::item18 2040 , typename Vector::item19, typename Vector::item20 2041 , typename Vector::item21, typename Vector::item22 2042 , typename Vector::item23, typename Vector::item24 2043 , typename Vector::item25, typename Vector::item26 2044 , typename Vector::item27, typename Vector::item28 2045 , typename Vector::item29, typename Vector::item30 2046 , typename Vector::item31, typename Vector::item32 2047 , typename Vector::item33, typename Vector::item34 2048 , typename Vector::item35, typename Vector::item36 2049 , typename Vector::item37, typename Vector::item38 2050 > type; 2051 }; 2052 }; 2053 2054 template<> 2055 struct push_back_impl< aux::vector_tag<38> > 2056 { 2057 template< typename Vector, typename T > struct apply 2058 { 2059 typedef vector39< 2060 typename Vector::item0, typename Vector::item1 2061 , typename Vector::item2, typename Vector::item3 2062 , typename Vector::item4, typename Vector::item5 2063 , typename Vector::item6, typename Vector::item7 2064 , typename Vector::item8, typename Vector::item9 2065 , typename Vector::item10, typename Vector::item11 2066 , typename Vector::item12, typename Vector::item13 2067 , typename Vector::item14, typename Vector::item15 2068 , typename Vector::item16, typename Vector::item17 2069 , typename Vector::item18, typename Vector::item19 2070 , typename Vector::item20, typename Vector::item21 2071 , typename Vector::item22, typename Vector::item23 2072 , typename Vector::item24, typename Vector::item25 2073 , typename Vector::item26, typename Vector::item27 2074 , typename Vector::item28, typename Vector::item29 2075 , typename Vector::item30, typename Vector::item31 2076 , typename Vector::item32, typename Vector::item33 2077 , typename Vector::item34, typename Vector::item35 2078 , typename Vector::item36, typename Vector::item37 2079 , 2080 T 2081 > type; 2082 }; 2083 }; 2084 2085 template<> 2086 struct pop_back_impl< aux::vector_tag<39> > 2087 { 2088 template< typename Vector > struct apply 2089 { 2090 typedef vector38< 2091 typename Vector::item0, typename Vector::item1 2092 , typename Vector::item2, typename Vector::item3 2093 , typename Vector::item4, typename Vector::item5 2094 , typename Vector::item6, typename Vector::item7 2095 , typename Vector::item8, typename Vector::item9 2096 , typename Vector::item10, typename Vector::item11 2097 , typename Vector::item12, typename Vector::item13 2098 , typename Vector::item14, typename Vector::item15 2099 , typename Vector::item16, typename Vector::item17 2100 , typename Vector::item18, typename Vector::item19 2101 , typename Vector::item20, typename Vector::item21 2102 , typename Vector::item22, typename Vector::item23 2103 , typename Vector::item24, typename Vector::item25 2104 , typename Vector::item26, typename Vector::item27 2105 , typename Vector::item28, typename Vector::item29 2106 , typename Vector::item30, typename Vector::item31 2107 , typename Vector::item32, typename Vector::item33 2108 , typename Vector::item34, typename Vector::item35 2109 , typename Vector::item36, typename Vector::item37 2110 > type; 2111 }; 2112 }; 2113 2114 namespace aux { 2115 template<> struct v_at_impl<39> 2116 { 2117 template< typename V_ > struct result_ 2118 { 2119 typedef typename V_::item39 type; 2120 }; 2121 }; 2122 2123 } 2124 2125 template<> 2126 struct at_impl< aux::vector_tag<39> > 2127 { 2128 template< typename V_, typename N > struct apply 2129 { 2130 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 2131 ::template result_<V_>::type type; 2132 }; 2133 }; 2134 2135 template<> 2136 struct front_impl< aux::vector_tag<39> > 2137 { 2138 template< typename Vector > struct apply 2139 { 2140 typedef typename Vector::item0 type; 2141 }; 2142 }; 2143 2144 template<> 2145 struct back_impl< aux::vector_tag<39> > 2146 { 2147 template< typename Vector > struct apply 2148 { 2149 typedef typename Vector::back type; 2150 }; 2151 }; 2152 2153 template<> 2154 struct empty_impl< aux::vector_tag<39> > 2155 { 2156 template< typename Vector > struct apply 2157 : false_ 2158 { 2159 }; 2160 }; 2161 2162 template<> 2163 struct size_impl< aux::vector_tag<39> > 2164 { 2165 template< typename Vector > struct apply 2166 : long_<39> 2167 { 2168 }; 2169 }; 2170 2171 template<> 2172 struct O1_size_impl< aux::vector_tag<39> > 2173 : size_impl< aux::vector_tag<39> > 2174 { 2175 }; 2176 2177 template<> 2178 struct clear_impl< aux::vector_tag<39> > 2179 { 2180 template< typename Vector > struct apply 2181 { 2182 typedef vector0<> type; 2183 }; 2184 }; 2185 2186 template< 2187 typename T0, typename T1, typename T2, typename T3, typename T4 2188 , typename T5, typename T6, typename T7, typename T8, typename T9 2189 , typename T10, typename T11, typename T12, typename T13, typename T14 2190 , typename T15, typename T16, typename T17, typename T18, typename T19 2191 , typename T20, typename T21, typename T22, typename T23, typename T24 2192 , typename T25, typename T26, typename T27, typename T28, typename T29 2193 , typename T30, typename T31, typename T32, typename T33, typename T34 2194 , typename T35, typename T36, typename T37, typename T38, typename T39 2195 > 2196 struct vector40 2197 { 2198 typedef aux::vector_tag<40> tag; 2199 typedef vector40 type; 2200 typedef T0 item0; 2201 typedef T1 item1; 2202 typedef T2 item2; 2203 typedef T3 item3; 2204 typedef T4 item4; 2205 typedef T5 item5; 2206 typedef T6 item6; 2207 typedef T7 item7; 2208 typedef T8 item8; 2209 typedef T9 item9; 2210 typedef T10 item10; 2211 typedef T11 item11; 2212 typedef T12 item12; 2213 typedef T13 item13; 2214 typedef T14 item14; 2215 typedef T15 item15; 2216 typedef T16 item16; 2217 typedef T17 item17; 2218 typedef T18 item18; 2219 typedef T19 item19; 2220 typedef T20 item20; 2221 typedef T21 item21; 2222 typedef T22 item22; 2223 typedef T23 item23; 2224 typedef T24 item24; 2225 typedef T25 item25; 2226 typedef T26 item26; 2227 typedef T27 item27; 2228 typedef T28 item28; 2229 typedef T29 item29; 2230 typedef T30 item30; 2231 typedef T31 item31; 2232 typedef T32 item32; 2233 typedef T33 item33; 2234 typedef T34 item34; 2235 typedef T35 item35; 2236 typedef T36 item36; 2237 typedef T37 item37; 2238 typedef T38 item38; 2239 typedef T39 item39; 2240 2241 2242 typedef void_ item40; 2243 typedef T39 back; 2244 typedef v_iter< type,0 > begin; 2245 typedef v_iter< type,40 > end; 2246 }; 2247 2248 template<> 2249 struct push_front_impl< aux::vector_tag<39> > 2250 { 2251 template< typename Vector, typename T > struct apply 2252 { 2253 typedef vector40< 2254 T 2255 , 2256 typename Vector::item0, typename Vector::item1 2257 , typename Vector::item2, typename Vector::item3 2258 , typename Vector::item4, typename Vector::item5 2259 , typename Vector::item6, typename Vector::item7 2260 , typename Vector::item8, typename Vector::item9 2261 , typename Vector::item10, typename Vector::item11 2262 , typename Vector::item12, typename Vector::item13 2263 , typename Vector::item14, typename Vector::item15 2264 , typename Vector::item16, typename Vector::item17 2265 , typename Vector::item18, typename Vector::item19 2266 , typename Vector::item20, typename Vector::item21 2267 , typename Vector::item22, typename Vector::item23 2268 , typename Vector::item24, typename Vector::item25 2269 , typename Vector::item26, typename Vector::item27 2270 , typename Vector::item28, typename Vector::item29 2271 , typename Vector::item30, typename Vector::item31 2272 , typename Vector::item32, typename Vector::item33 2273 , typename Vector::item34, typename Vector::item35 2274 , typename Vector::item36, typename Vector::item37 2275 , typename Vector::item38 2276 > type; 2277 }; 2278 }; 2279 2280 template<> 2281 struct pop_front_impl< aux::vector_tag<40> > 2282 { 2283 template< typename Vector > struct apply 2284 { 2285 typedef vector39< 2286 typename Vector::item1, typename Vector::item2 2287 , typename Vector::item3, typename Vector::item4 2288 , typename Vector::item5, typename Vector::item6 2289 , typename Vector::item7, typename Vector::item8 2290 , typename Vector::item9, typename Vector::item10 2291 , typename Vector::item11, typename Vector::item12 2292 , typename Vector::item13, typename Vector::item14 2293 , typename Vector::item15, typename Vector::item16 2294 , typename Vector::item17, typename Vector::item18 2295 , typename Vector::item19, typename Vector::item20 2296 , typename Vector::item21, typename Vector::item22 2297 , typename Vector::item23, typename Vector::item24 2298 , typename Vector::item25, typename Vector::item26 2299 , typename Vector::item27, typename Vector::item28 2300 , typename Vector::item29, typename Vector::item30 2301 , typename Vector::item31, typename Vector::item32 2302 , typename Vector::item33, typename Vector::item34 2303 , typename Vector::item35, typename Vector::item36 2304 , typename Vector::item37, typename Vector::item38 2305 , typename Vector::item39 2306 > type; 2307 }; 2308 }; 2309 2310 template<> 2311 struct push_back_impl< aux::vector_tag<39> > 2312 { 2313 template< typename Vector, typename T > struct apply 2314 { 2315 typedef vector40< 2316 typename Vector::item0, typename Vector::item1 2317 , typename Vector::item2, typename Vector::item3 2318 , typename Vector::item4, typename Vector::item5 2319 , typename Vector::item6, typename Vector::item7 2320 , typename Vector::item8, typename Vector::item9 2321 , typename Vector::item10, typename Vector::item11 2322 , typename Vector::item12, typename Vector::item13 2323 , typename Vector::item14, typename Vector::item15 2324 , typename Vector::item16, typename Vector::item17 2325 , typename Vector::item18, typename Vector::item19 2326 , typename Vector::item20, typename Vector::item21 2327 , typename Vector::item22, typename Vector::item23 2328 , typename Vector::item24, typename Vector::item25 2329 , typename Vector::item26, typename Vector::item27 2330 , typename Vector::item28, typename Vector::item29 2331 , typename Vector::item30, typename Vector::item31 2332 , typename Vector::item32, typename Vector::item33 2333 , typename Vector::item34, typename Vector::item35 2334 , typename Vector::item36, typename Vector::item37 2335 , typename Vector::item38 2336 , 2337 T 2338 > type; 2339 }; 2340 }; 2341 2342 template<> 2343 struct pop_back_impl< aux::vector_tag<40> > 2344 { 2345 template< typename Vector > struct apply 2346 { 2347 typedef vector39< 2348 typename Vector::item0, typename Vector::item1 2349 , typename Vector::item2, typename Vector::item3 2350 , typename Vector::item4, typename Vector::item5 2351 , typename Vector::item6, typename Vector::item7 2352 , typename Vector::item8, typename Vector::item9 2353 , typename Vector::item10, typename Vector::item11 2354 , typename Vector::item12, typename Vector::item13 2355 , typename Vector::item14, typename Vector::item15 2356 , typename Vector::item16, typename Vector::item17 2357 , typename Vector::item18, typename Vector::item19 2358 , typename Vector::item20, typename Vector::item21 2359 , typename Vector::item22, typename Vector::item23 2360 , typename Vector::item24, typename Vector::item25 2361 , typename Vector::item26, typename Vector::item27 2362 , typename Vector::item28, typename Vector::item29 2363 , typename Vector::item30, typename Vector::item31 2364 , typename Vector::item32, typename Vector::item33 2365 , typename Vector::item34, typename Vector::item35 2366 , typename Vector::item36, typename Vector::item37 2367 , typename Vector::item38 2368 > type; 2369 }; 2370 }; 2371 2372 namespace aux { 2373 template<> struct v_at_impl<40> 2374 { 2375 template< typename V_ > struct result_ 2376 { 2377 typedef typename V_::item40 type; 2378 }; 2379 }; 2380 2381 } 2382 2383 template<> 2384 struct at_impl< aux::vector_tag<40> > 2385 { 2386 template< typename V_, typename N > struct apply 2387 { 2388 typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value> 2389 ::template result_<V_>::type type; 2390 }; 2391 }; 2392 2393 template<> 2394 struct front_impl< aux::vector_tag<40> > 2395 { 2396 template< typename Vector > struct apply 2397 { 2398 typedef typename Vector::item0 type; 2399 }; 2400 }; 2401 2402 template<> 2403 struct back_impl< aux::vector_tag<40> > 2404 { 2405 template< typename Vector > struct apply 2406 { 2407 typedef typename Vector::back type; 2408 }; 2409 }; 2410 2411 template<> 2412 struct empty_impl< aux::vector_tag<40> > 2413 { 2414 template< typename Vector > struct apply 2415 : false_ 2416 { 2417 }; 2418 }; 2419 2420 template<> 2421 struct size_impl< aux::vector_tag<40> > 2422 { 2423 template< typename Vector > struct apply 2424 : long_<40> 2425 { 2426 }; 2427 }; 2428 2429 template<> 2430 struct O1_size_impl< aux::vector_tag<40> > 2431 : size_impl< aux::vector_tag<40> > 2432 { 2433 }; 2434 2435 template<> 2436 struct clear_impl< aux::vector_tag<40> > 2437 { 2438 template< typename Vector > struct apply 2439 { 2440 typedef vector0<> type; 2441 }; 2442 }; 2443 2444 }} 2445