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