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