File indexing completed on 2025-01-18 09:41:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 namespace boost { namespace mpl {
0013
0014 template<
0015 typename T0, typename T1, typename T2, typename T3, typename T4
0016 , typename T5, typename T6, typename T7, typename T8, typename T9
0017 , typename T10
0018 >
0019 struct vector11
0020 {
0021 typedef aux::vector_tag<11> tag;
0022 typedef vector11 type;
0023 typedef T0 item0;
0024 typedef T1 item1;
0025 typedef T2 item2;
0026 typedef T3 item3;
0027 typedef T4 item4;
0028 typedef T5 item5;
0029 typedef T6 item6;
0030 typedef T7 item7;
0031 typedef T8 item8;
0032 typedef T9 item9;
0033 typedef T10 item10;
0034
0035
0036 typedef void_ item11;
0037 typedef T10 back;
0038 typedef v_iter< type,0 > begin;
0039 typedef v_iter< type,11 > end;
0040 };
0041
0042 template<>
0043 struct push_front_impl< aux::vector_tag<10> >
0044 {
0045 template< typename Vector, typename T > struct apply
0046 {
0047 typedef vector11<
0048 T
0049 ,
0050 typename Vector::item0, typename Vector::item1
0051 , typename Vector::item2, typename Vector::item3
0052 , typename Vector::item4, typename Vector::item5
0053 , typename Vector::item6, typename Vector::item7
0054 , typename Vector::item8, typename Vector::item9
0055 > type;
0056 };
0057 };
0058
0059 template<>
0060 struct pop_front_impl< aux::vector_tag<11> >
0061 {
0062 template< typename Vector > struct apply
0063 {
0064 typedef vector10<
0065 typename Vector::item1, typename Vector::item2
0066 , typename Vector::item3, typename Vector::item4
0067 , typename Vector::item5, typename Vector::item6
0068 , typename Vector::item7, typename Vector::item8
0069 , typename Vector::item9, typename Vector::item10
0070 > type;
0071 };
0072 };
0073
0074 template<>
0075 struct push_back_impl< aux::vector_tag<10> >
0076 {
0077 template< typename Vector, typename T > struct apply
0078 {
0079 typedef vector11<
0080 typename Vector::item0, typename Vector::item1
0081 , typename Vector::item2, typename Vector::item3
0082 , typename Vector::item4, typename Vector::item5
0083 , typename Vector::item6, typename Vector::item7
0084 , typename Vector::item8, typename Vector::item9
0085 ,
0086 T
0087 > type;
0088 };
0089 };
0090
0091 template<>
0092 struct pop_back_impl< aux::vector_tag<11> >
0093 {
0094 template< typename Vector > struct apply
0095 {
0096 typedef vector10<
0097 typename Vector::item0, typename Vector::item1
0098 , typename Vector::item2, typename Vector::item3
0099 , typename Vector::item4, typename Vector::item5
0100 , typename Vector::item6, typename Vector::item7
0101 , typename Vector::item8, typename Vector::item9
0102 > type;
0103 };
0104 };
0105
0106 template< typename V >
0107 struct v_at< V,11 >
0108 {
0109 typedef typename V::item11 type;
0110 };
0111
0112 template<
0113 typename T0, typename T1, typename T2, typename T3, typename T4
0114 , typename T5, typename T6, typename T7, typename T8, typename T9
0115 , typename T10, typename T11
0116 >
0117 struct vector12
0118 {
0119 typedef aux::vector_tag<12> tag;
0120 typedef vector12 type;
0121 typedef T0 item0;
0122 typedef T1 item1;
0123 typedef T2 item2;
0124 typedef T3 item3;
0125 typedef T4 item4;
0126 typedef T5 item5;
0127 typedef T6 item6;
0128 typedef T7 item7;
0129 typedef T8 item8;
0130 typedef T9 item9;
0131 typedef T10 item10;
0132 typedef T11 item11;
0133
0134
0135 typedef void_ item12;
0136 typedef T11 back;
0137 typedef v_iter< type,0 > begin;
0138 typedef v_iter< type,12 > end;
0139 };
0140
0141 template<>
0142 struct push_front_impl< aux::vector_tag<11> >
0143 {
0144 template< typename Vector, typename T > struct apply
0145 {
0146 typedef vector12<
0147 T
0148 ,
0149 typename Vector::item0, typename Vector::item1
0150 , typename Vector::item2, typename Vector::item3
0151 , typename Vector::item4, typename Vector::item5
0152 , typename Vector::item6, typename Vector::item7
0153 , typename Vector::item8, typename Vector::item9
0154 , typename Vector::item10
0155 > type;
0156 };
0157 };
0158
0159 template<>
0160 struct pop_front_impl< aux::vector_tag<12> >
0161 {
0162 template< typename Vector > struct apply
0163 {
0164 typedef vector11<
0165 typename Vector::item1, typename Vector::item2
0166 , typename Vector::item3, typename Vector::item4
0167 , typename Vector::item5, typename Vector::item6
0168 , typename Vector::item7, typename Vector::item8
0169 , typename Vector::item9, typename Vector::item10
0170 , typename Vector::item11
0171 > type;
0172 };
0173 };
0174
0175 template<>
0176 struct push_back_impl< aux::vector_tag<11> >
0177 {
0178 template< typename Vector, typename T > struct apply
0179 {
0180 typedef vector12<
0181 typename Vector::item0, typename Vector::item1
0182 , typename Vector::item2, typename Vector::item3
0183 , typename Vector::item4, typename Vector::item5
0184 , typename Vector::item6, typename Vector::item7
0185 , typename Vector::item8, typename Vector::item9
0186 , typename Vector::item10
0187 ,
0188 T
0189 > type;
0190 };
0191 };
0192
0193 template<>
0194 struct pop_back_impl< aux::vector_tag<12> >
0195 {
0196 template< typename Vector > struct apply
0197 {
0198 typedef vector11<
0199 typename Vector::item0, typename Vector::item1
0200 , typename Vector::item2, typename Vector::item3
0201 , typename Vector::item4, typename Vector::item5
0202 , typename Vector::item6, typename Vector::item7
0203 , typename Vector::item8, typename Vector::item9
0204 , typename Vector::item10
0205 > type;
0206 };
0207 };
0208
0209 template< typename V >
0210 struct v_at< V,12 >
0211 {
0212 typedef typename V::item12 type;
0213 };
0214
0215 template<
0216 typename T0, typename T1, typename T2, typename T3, typename T4
0217 , typename T5, typename T6, typename T7, typename T8, typename T9
0218 , typename T10, typename T11, typename T12
0219 >
0220 struct vector13
0221 {
0222 typedef aux::vector_tag<13> tag;
0223 typedef vector13 type;
0224 typedef T0 item0;
0225 typedef T1 item1;
0226 typedef T2 item2;
0227 typedef T3 item3;
0228 typedef T4 item4;
0229 typedef T5 item5;
0230 typedef T6 item6;
0231 typedef T7 item7;
0232 typedef T8 item8;
0233 typedef T9 item9;
0234 typedef T10 item10;
0235 typedef T11 item11;
0236 typedef T12 item12;
0237
0238
0239 typedef void_ item13;
0240 typedef T12 back;
0241 typedef v_iter< type,0 > begin;
0242 typedef v_iter< type,13 > end;
0243 };
0244
0245 template<>
0246 struct push_front_impl< aux::vector_tag<12> >
0247 {
0248 template< typename Vector, typename T > struct apply
0249 {
0250 typedef vector13<
0251 T
0252 ,
0253 typename Vector::item0, typename Vector::item1
0254 , typename Vector::item2, typename Vector::item3
0255 , typename Vector::item4, typename Vector::item5
0256 , typename Vector::item6, typename Vector::item7
0257 , typename Vector::item8, typename Vector::item9
0258 , typename Vector::item10, typename Vector::item11
0259 > type;
0260 };
0261 };
0262
0263 template<>
0264 struct pop_front_impl< aux::vector_tag<13> >
0265 {
0266 template< typename Vector > struct apply
0267 {
0268 typedef vector12<
0269 typename Vector::item1, typename Vector::item2
0270 , typename Vector::item3, typename Vector::item4
0271 , typename Vector::item5, typename Vector::item6
0272 , typename Vector::item7, typename Vector::item8
0273 , typename Vector::item9, typename Vector::item10
0274 , typename Vector::item11, typename Vector::item12
0275 > type;
0276 };
0277 };
0278
0279 template<>
0280 struct push_back_impl< aux::vector_tag<12> >
0281 {
0282 template< typename Vector, typename T > struct apply
0283 {
0284 typedef vector13<
0285 typename Vector::item0, typename Vector::item1
0286 , typename Vector::item2, typename Vector::item3
0287 , typename Vector::item4, typename Vector::item5
0288 , typename Vector::item6, typename Vector::item7
0289 , typename Vector::item8, typename Vector::item9
0290 , typename Vector::item10, typename Vector::item11
0291 ,
0292 T
0293 > type;
0294 };
0295 };
0296
0297 template<>
0298 struct pop_back_impl< aux::vector_tag<13> >
0299 {
0300 template< typename Vector > struct apply
0301 {
0302 typedef vector12<
0303 typename Vector::item0, typename Vector::item1
0304 , typename Vector::item2, typename Vector::item3
0305 , typename Vector::item4, typename Vector::item5
0306 , typename Vector::item6, typename Vector::item7
0307 , typename Vector::item8, typename Vector::item9
0308 , typename Vector::item10, typename Vector::item11
0309 > type;
0310 };
0311 };
0312
0313 template< typename V >
0314 struct v_at< V,13 >
0315 {
0316 typedef typename V::item13 type;
0317 };
0318
0319 template<
0320 typename T0, typename T1, typename T2, typename T3, typename T4
0321 , typename T5, typename T6, typename T7, typename T8, typename T9
0322 , typename T10, typename T11, typename T12, typename T13
0323 >
0324 struct vector14
0325 {
0326 typedef aux::vector_tag<14> tag;
0327 typedef vector14 type;
0328 typedef T0 item0;
0329 typedef T1 item1;
0330 typedef T2 item2;
0331 typedef T3 item3;
0332 typedef T4 item4;
0333 typedef T5 item5;
0334 typedef T6 item6;
0335 typedef T7 item7;
0336 typedef T8 item8;
0337 typedef T9 item9;
0338 typedef T10 item10;
0339 typedef T11 item11;
0340 typedef T12 item12;
0341 typedef T13 item13;
0342
0343
0344 typedef void_ item14;
0345 typedef T13 back;
0346 typedef v_iter< type,0 > begin;
0347 typedef v_iter< type,14 > end;
0348 };
0349
0350 template<>
0351 struct push_front_impl< aux::vector_tag<13> >
0352 {
0353 template< typename Vector, typename T > struct apply
0354 {
0355 typedef vector14<
0356 T
0357 ,
0358 typename Vector::item0, typename Vector::item1
0359 , typename Vector::item2, typename Vector::item3
0360 , typename Vector::item4, typename Vector::item5
0361 , typename Vector::item6, typename Vector::item7
0362 , typename Vector::item8, typename Vector::item9
0363 , typename Vector::item10, typename Vector::item11
0364 , typename Vector::item12
0365 > type;
0366 };
0367 };
0368
0369 template<>
0370 struct pop_front_impl< aux::vector_tag<14> >
0371 {
0372 template< typename Vector > struct apply
0373 {
0374 typedef vector13<
0375 typename Vector::item1, typename Vector::item2
0376 , typename Vector::item3, typename Vector::item4
0377 , typename Vector::item5, typename Vector::item6
0378 , typename Vector::item7, typename Vector::item8
0379 , typename Vector::item9, typename Vector::item10
0380 , typename Vector::item11, typename Vector::item12
0381 , typename Vector::item13
0382 > type;
0383 };
0384 };
0385
0386 template<>
0387 struct push_back_impl< aux::vector_tag<13> >
0388 {
0389 template< typename Vector, typename T > struct apply
0390 {
0391 typedef vector14<
0392 typename Vector::item0, typename Vector::item1
0393 , typename Vector::item2, typename Vector::item3
0394 , typename Vector::item4, typename Vector::item5
0395 , typename Vector::item6, typename Vector::item7
0396 , typename Vector::item8, typename Vector::item9
0397 , typename Vector::item10, typename Vector::item11
0398 , typename Vector::item12
0399 ,
0400 T
0401 > type;
0402 };
0403 };
0404
0405 template<>
0406 struct pop_back_impl< aux::vector_tag<14> >
0407 {
0408 template< typename Vector > struct apply
0409 {
0410 typedef vector13<
0411 typename Vector::item0, typename Vector::item1
0412 , typename Vector::item2, typename Vector::item3
0413 , typename Vector::item4, typename Vector::item5
0414 , typename Vector::item6, typename Vector::item7
0415 , typename Vector::item8, typename Vector::item9
0416 , typename Vector::item10, typename Vector::item11
0417 , typename Vector::item12
0418 > type;
0419 };
0420 };
0421
0422 template< typename V >
0423 struct v_at< V,14 >
0424 {
0425 typedef typename V::item14 type;
0426 };
0427
0428 template<
0429 typename T0, typename T1, typename T2, typename T3, typename T4
0430 , typename T5, typename T6, typename T7, typename T8, typename T9
0431 , typename T10, typename T11, typename T12, typename T13, typename T14
0432 >
0433 struct vector15
0434 {
0435 typedef aux::vector_tag<15> tag;
0436 typedef vector15 type;
0437 typedef T0 item0;
0438 typedef T1 item1;
0439 typedef T2 item2;
0440 typedef T3 item3;
0441 typedef T4 item4;
0442 typedef T5 item5;
0443 typedef T6 item6;
0444 typedef T7 item7;
0445 typedef T8 item8;
0446 typedef T9 item9;
0447 typedef T10 item10;
0448 typedef T11 item11;
0449 typedef T12 item12;
0450 typedef T13 item13;
0451 typedef T14 item14;
0452
0453
0454 typedef void_ item15;
0455 typedef T14 back;
0456 typedef v_iter< type,0 > begin;
0457 typedef v_iter< type,15 > end;
0458 };
0459
0460 template<>
0461 struct push_front_impl< aux::vector_tag<14> >
0462 {
0463 template< typename Vector, typename T > struct apply
0464 {
0465 typedef vector15<
0466 T
0467 ,
0468 typename Vector::item0, typename Vector::item1
0469 , typename Vector::item2, typename Vector::item3
0470 , typename Vector::item4, typename Vector::item5
0471 , typename Vector::item6, typename Vector::item7
0472 , typename Vector::item8, typename Vector::item9
0473 , typename Vector::item10, typename Vector::item11
0474 , typename Vector::item12, typename Vector::item13
0475 > type;
0476 };
0477 };
0478
0479 template<>
0480 struct pop_front_impl< aux::vector_tag<15> >
0481 {
0482 template< typename Vector > struct apply
0483 {
0484 typedef vector14<
0485 typename Vector::item1, typename Vector::item2
0486 , typename Vector::item3, typename Vector::item4
0487 , typename Vector::item5, typename Vector::item6
0488 , typename Vector::item7, typename Vector::item8
0489 , typename Vector::item9, typename Vector::item10
0490 , typename Vector::item11, typename Vector::item12
0491 , typename Vector::item13, typename Vector::item14
0492 > type;
0493 };
0494 };
0495
0496 template<>
0497 struct push_back_impl< aux::vector_tag<14> >
0498 {
0499 template< typename Vector, typename T > struct apply
0500 {
0501 typedef vector15<
0502 typename Vector::item0, typename Vector::item1
0503 , typename Vector::item2, typename Vector::item3
0504 , typename Vector::item4, typename Vector::item5
0505 , typename Vector::item6, typename Vector::item7
0506 , typename Vector::item8, typename Vector::item9
0507 , typename Vector::item10, typename Vector::item11
0508 , typename Vector::item12, typename Vector::item13
0509 ,
0510 T
0511 > type;
0512 };
0513 };
0514
0515 template<>
0516 struct pop_back_impl< aux::vector_tag<15> >
0517 {
0518 template< typename Vector > struct apply
0519 {
0520 typedef vector14<
0521 typename Vector::item0, typename Vector::item1
0522 , typename Vector::item2, typename Vector::item3
0523 , typename Vector::item4, typename Vector::item5
0524 , typename Vector::item6, typename Vector::item7
0525 , typename Vector::item8, typename Vector::item9
0526 , typename Vector::item10, typename Vector::item11
0527 , typename Vector::item12, typename Vector::item13
0528 > type;
0529 };
0530 };
0531
0532 template< typename V >
0533 struct v_at< V,15 >
0534 {
0535 typedef typename V::item15 type;
0536 };
0537
0538 template<
0539 typename T0, typename T1, typename T2, typename T3, typename T4
0540 , typename T5, typename T6, typename T7, typename T8, typename T9
0541 , typename T10, typename T11, typename T12, typename T13, typename T14
0542 , typename T15
0543 >
0544 struct vector16
0545 {
0546 typedef aux::vector_tag<16> tag;
0547 typedef vector16 type;
0548 typedef T0 item0;
0549 typedef T1 item1;
0550 typedef T2 item2;
0551 typedef T3 item3;
0552 typedef T4 item4;
0553 typedef T5 item5;
0554 typedef T6 item6;
0555 typedef T7 item7;
0556 typedef T8 item8;
0557 typedef T9 item9;
0558 typedef T10 item10;
0559 typedef T11 item11;
0560 typedef T12 item12;
0561 typedef T13 item13;
0562 typedef T14 item14;
0563 typedef T15 item15;
0564
0565
0566 typedef void_ item16;
0567 typedef T15 back;
0568 typedef v_iter< type,0 > begin;
0569 typedef v_iter< type,16 > end;
0570 };
0571
0572 template<>
0573 struct push_front_impl< aux::vector_tag<15> >
0574 {
0575 template< typename Vector, typename T > struct apply
0576 {
0577 typedef vector16<
0578 T
0579 ,
0580 typename Vector::item0, typename Vector::item1
0581 , typename Vector::item2, typename Vector::item3
0582 , typename Vector::item4, typename Vector::item5
0583 , typename Vector::item6, typename Vector::item7
0584 , typename Vector::item8, typename Vector::item9
0585 , typename Vector::item10, typename Vector::item11
0586 , typename Vector::item12, typename Vector::item13
0587 , typename Vector::item14
0588 > type;
0589 };
0590 };
0591
0592 template<>
0593 struct pop_front_impl< aux::vector_tag<16> >
0594 {
0595 template< typename Vector > struct apply
0596 {
0597 typedef vector15<
0598 typename Vector::item1, typename Vector::item2
0599 , typename Vector::item3, typename Vector::item4
0600 , typename Vector::item5, typename Vector::item6
0601 , typename Vector::item7, typename Vector::item8
0602 , typename Vector::item9, typename Vector::item10
0603 , typename Vector::item11, typename Vector::item12
0604 , typename Vector::item13, typename Vector::item14
0605 , typename Vector::item15
0606 > type;
0607 };
0608 };
0609
0610 template<>
0611 struct push_back_impl< aux::vector_tag<15> >
0612 {
0613 template< typename Vector, typename T > struct apply
0614 {
0615 typedef vector16<
0616 typename Vector::item0, typename Vector::item1
0617 , typename Vector::item2, typename Vector::item3
0618 , typename Vector::item4, typename Vector::item5
0619 , typename Vector::item6, typename Vector::item7
0620 , typename Vector::item8, typename Vector::item9
0621 , typename Vector::item10, typename Vector::item11
0622 , typename Vector::item12, typename Vector::item13
0623 , typename Vector::item14
0624 ,
0625 T
0626 > type;
0627 };
0628 };
0629
0630 template<>
0631 struct pop_back_impl< aux::vector_tag<16> >
0632 {
0633 template< typename Vector > struct apply
0634 {
0635 typedef vector15<
0636 typename Vector::item0, typename Vector::item1
0637 , typename Vector::item2, typename Vector::item3
0638 , typename Vector::item4, typename Vector::item5
0639 , typename Vector::item6, typename Vector::item7
0640 , typename Vector::item8, typename Vector::item9
0641 , typename Vector::item10, typename Vector::item11
0642 , typename Vector::item12, typename Vector::item13
0643 , typename Vector::item14
0644 > type;
0645 };
0646 };
0647
0648 template< typename V >
0649 struct v_at< V,16 >
0650 {
0651 typedef typename V::item16 type;
0652 };
0653
0654 template<
0655 typename T0, typename T1, typename T2, typename T3, typename T4
0656 , typename T5, typename T6, typename T7, typename T8, typename T9
0657 , typename T10, typename T11, typename T12, typename T13, typename T14
0658 , typename T15, typename T16
0659 >
0660 struct vector17
0661 {
0662 typedef aux::vector_tag<17> tag;
0663 typedef vector17 type;
0664 typedef T0 item0;
0665 typedef T1 item1;
0666 typedef T2 item2;
0667 typedef T3 item3;
0668 typedef T4 item4;
0669 typedef T5 item5;
0670 typedef T6 item6;
0671 typedef T7 item7;
0672 typedef T8 item8;
0673 typedef T9 item9;
0674 typedef T10 item10;
0675 typedef T11 item11;
0676 typedef T12 item12;
0677 typedef T13 item13;
0678 typedef T14 item14;
0679 typedef T15 item15;
0680 typedef T16 item16;
0681
0682
0683 typedef void_ item17;
0684 typedef T16 back;
0685 typedef v_iter< type,0 > begin;
0686 typedef v_iter< type,17 > end;
0687 };
0688
0689 template<>
0690 struct push_front_impl< aux::vector_tag<16> >
0691 {
0692 template< typename Vector, typename T > struct apply
0693 {
0694 typedef vector17<
0695 T
0696 ,
0697 typename Vector::item0, typename Vector::item1
0698 , typename Vector::item2, typename Vector::item3
0699 , typename Vector::item4, typename Vector::item5
0700 , typename Vector::item6, typename Vector::item7
0701 , typename Vector::item8, typename Vector::item9
0702 , typename Vector::item10, typename Vector::item11
0703 , typename Vector::item12, typename Vector::item13
0704 , typename Vector::item14, typename Vector::item15
0705 > type;
0706 };
0707 };
0708
0709 template<>
0710 struct pop_front_impl< aux::vector_tag<17> >
0711 {
0712 template< typename Vector > struct apply
0713 {
0714 typedef vector16<
0715 typename Vector::item1, typename Vector::item2
0716 , typename Vector::item3, typename Vector::item4
0717 , typename Vector::item5, typename Vector::item6
0718 , typename Vector::item7, typename Vector::item8
0719 , typename Vector::item9, typename Vector::item10
0720 , typename Vector::item11, typename Vector::item12
0721 , typename Vector::item13, typename Vector::item14
0722 , typename Vector::item15, typename Vector::item16
0723 > type;
0724 };
0725 };
0726
0727 template<>
0728 struct push_back_impl< aux::vector_tag<16> >
0729 {
0730 template< typename Vector, typename T > struct apply
0731 {
0732 typedef vector17<
0733 typename Vector::item0, typename Vector::item1
0734 , typename Vector::item2, typename Vector::item3
0735 , typename Vector::item4, typename Vector::item5
0736 , typename Vector::item6, typename Vector::item7
0737 , typename Vector::item8, typename Vector::item9
0738 , typename Vector::item10, typename Vector::item11
0739 , typename Vector::item12, typename Vector::item13
0740 , typename Vector::item14, typename Vector::item15
0741 ,
0742 T
0743 > type;
0744 };
0745 };
0746
0747 template<>
0748 struct pop_back_impl< aux::vector_tag<17> >
0749 {
0750 template< typename Vector > struct apply
0751 {
0752 typedef vector16<
0753 typename Vector::item0, typename Vector::item1
0754 , typename Vector::item2, typename Vector::item3
0755 , typename Vector::item4, typename Vector::item5
0756 , typename Vector::item6, typename Vector::item7
0757 , typename Vector::item8, typename Vector::item9
0758 , typename Vector::item10, typename Vector::item11
0759 , typename Vector::item12, typename Vector::item13
0760 , typename Vector::item14, typename Vector::item15
0761 > type;
0762 };
0763 };
0764
0765 template< typename V >
0766 struct v_at< V,17 >
0767 {
0768 typedef typename V::item17 type;
0769 };
0770
0771 template<
0772 typename T0, typename T1, typename T2, typename T3, typename T4
0773 , typename T5, typename T6, typename T7, typename T8, typename T9
0774 , typename T10, typename T11, typename T12, typename T13, typename T14
0775 , typename T15, typename T16, typename T17
0776 >
0777 struct vector18
0778 {
0779 typedef aux::vector_tag<18> tag;
0780 typedef vector18 type;
0781 typedef T0 item0;
0782 typedef T1 item1;
0783 typedef T2 item2;
0784 typedef T3 item3;
0785 typedef T4 item4;
0786 typedef T5 item5;
0787 typedef T6 item6;
0788 typedef T7 item7;
0789 typedef T8 item8;
0790 typedef T9 item9;
0791 typedef T10 item10;
0792 typedef T11 item11;
0793 typedef T12 item12;
0794 typedef T13 item13;
0795 typedef T14 item14;
0796 typedef T15 item15;
0797 typedef T16 item16;
0798 typedef T17 item17;
0799
0800
0801 typedef void_ item18;
0802 typedef T17 back;
0803 typedef v_iter< type,0 > begin;
0804 typedef v_iter< type,18 > end;
0805 };
0806
0807 template<>
0808 struct push_front_impl< aux::vector_tag<17> >
0809 {
0810 template< typename Vector, typename T > struct apply
0811 {
0812 typedef vector18<
0813 T
0814 ,
0815 typename Vector::item0, typename Vector::item1
0816 , typename Vector::item2, typename Vector::item3
0817 , typename Vector::item4, typename Vector::item5
0818 , typename Vector::item6, typename Vector::item7
0819 , typename Vector::item8, typename Vector::item9
0820 , typename Vector::item10, typename Vector::item11
0821 , typename Vector::item12, typename Vector::item13
0822 , typename Vector::item14, typename Vector::item15
0823 , typename Vector::item16
0824 > type;
0825 };
0826 };
0827
0828 template<>
0829 struct pop_front_impl< aux::vector_tag<18> >
0830 {
0831 template< typename Vector > struct apply
0832 {
0833 typedef vector17<
0834 typename Vector::item1, typename Vector::item2
0835 , typename Vector::item3, typename Vector::item4
0836 , typename Vector::item5, typename Vector::item6
0837 , typename Vector::item7, typename Vector::item8
0838 , typename Vector::item9, typename Vector::item10
0839 , typename Vector::item11, typename Vector::item12
0840 , typename Vector::item13, typename Vector::item14
0841 , typename Vector::item15, typename Vector::item16
0842 , typename Vector::item17
0843 > type;
0844 };
0845 };
0846
0847 template<>
0848 struct push_back_impl< aux::vector_tag<17> >
0849 {
0850 template< typename Vector, typename T > struct apply
0851 {
0852 typedef vector18<
0853 typename Vector::item0, typename Vector::item1
0854 , typename Vector::item2, typename Vector::item3
0855 , typename Vector::item4, typename Vector::item5
0856 , typename Vector::item6, typename Vector::item7
0857 , typename Vector::item8, typename Vector::item9
0858 , typename Vector::item10, typename Vector::item11
0859 , typename Vector::item12, typename Vector::item13
0860 , typename Vector::item14, typename Vector::item15
0861 , typename Vector::item16
0862 ,
0863 T
0864 > type;
0865 };
0866 };
0867
0868 template<>
0869 struct pop_back_impl< aux::vector_tag<18> >
0870 {
0871 template< typename Vector > struct apply
0872 {
0873 typedef vector17<
0874 typename Vector::item0, typename Vector::item1
0875 , typename Vector::item2, typename Vector::item3
0876 , typename Vector::item4, typename Vector::item5
0877 , typename Vector::item6, typename Vector::item7
0878 , typename Vector::item8, typename Vector::item9
0879 , typename Vector::item10, typename Vector::item11
0880 , typename Vector::item12, typename Vector::item13
0881 , typename Vector::item14, typename Vector::item15
0882 , typename Vector::item16
0883 > type;
0884 };
0885 };
0886
0887 template< typename V >
0888 struct v_at< V,18 >
0889 {
0890 typedef typename V::item18 type;
0891 };
0892
0893 template<
0894 typename T0, typename T1, typename T2, typename T3, typename T4
0895 , typename T5, typename T6, typename T7, typename T8, typename T9
0896 , typename T10, typename T11, typename T12, typename T13, typename T14
0897 , typename T15, typename T16, typename T17, typename T18
0898 >
0899 struct vector19
0900 {
0901 typedef aux::vector_tag<19> tag;
0902 typedef vector19 type;
0903 typedef T0 item0;
0904 typedef T1 item1;
0905 typedef T2 item2;
0906 typedef T3 item3;
0907 typedef T4 item4;
0908 typedef T5 item5;
0909 typedef T6 item6;
0910 typedef T7 item7;
0911 typedef T8 item8;
0912 typedef T9 item9;
0913 typedef T10 item10;
0914 typedef T11 item11;
0915 typedef T12 item12;
0916 typedef T13 item13;
0917 typedef T14 item14;
0918 typedef T15 item15;
0919 typedef T16 item16;
0920 typedef T17 item17;
0921 typedef T18 item18;
0922
0923
0924 typedef void_ item19;
0925 typedef T18 back;
0926 typedef v_iter< type,0 > begin;
0927 typedef v_iter< type,19 > end;
0928 };
0929
0930 template<>
0931 struct push_front_impl< aux::vector_tag<18> >
0932 {
0933 template< typename Vector, typename T > struct apply
0934 {
0935 typedef vector19<
0936 T
0937 ,
0938 typename Vector::item0, typename Vector::item1
0939 , typename Vector::item2, typename Vector::item3
0940 , typename Vector::item4, typename Vector::item5
0941 , typename Vector::item6, typename Vector::item7
0942 , typename Vector::item8, typename Vector::item9
0943 , typename Vector::item10, typename Vector::item11
0944 , typename Vector::item12, typename Vector::item13
0945 , typename Vector::item14, typename Vector::item15
0946 , typename Vector::item16, typename Vector::item17
0947 > type;
0948 };
0949 };
0950
0951 template<>
0952 struct pop_front_impl< aux::vector_tag<19> >
0953 {
0954 template< typename Vector > struct apply
0955 {
0956 typedef vector18<
0957 typename Vector::item1, typename Vector::item2
0958 , typename Vector::item3, typename Vector::item4
0959 , typename Vector::item5, typename Vector::item6
0960 , typename Vector::item7, typename Vector::item8
0961 , typename Vector::item9, typename Vector::item10
0962 , typename Vector::item11, typename Vector::item12
0963 , typename Vector::item13, typename Vector::item14
0964 , typename Vector::item15, typename Vector::item16
0965 , typename Vector::item17, typename Vector::item18
0966 > type;
0967 };
0968 };
0969
0970 template<>
0971 struct push_back_impl< aux::vector_tag<18> >
0972 {
0973 template< typename Vector, typename T > struct apply
0974 {
0975 typedef vector19<
0976 typename Vector::item0, typename Vector::item1
0977 , typename Vector::item2, typename Vector::item3
0978 , typename Vector::item4, typename Vector::item5
0979 , typename Vector::item6, typename Vector::item7
0980 , typename Vector::item8, typename Vector::item9
0981 , typename Vector::item10, typename Vector::item11
0982 , typename Vector::item12, typename Vector::item13
0983 , typename Vector::item14, typename Vector::item15
0984 , typename Vector::item16, typename Vector::item17
0985 ,
0986 T
0987 > type;
0988 };
0989 };
0990
0991 template<>
0992 struct pop_back_impl< aux::vector_tag<19> >
0993 {
0994 template< typename Vector > struct apply
0995 {
0996 typedef vector18<
0997 typename Vector::item0, typename Vector::item1
0998 , typename Vector::item2, typename Vector::item3
0999 , typename Vector::item4, typename Vector::item5
1000 , typename Vector::item6, typename Vector::item7
1001 , typename Vector::item8, typename Vector::item9
1002 , typename Vector::item10, typename Vector::item11
1003 , typename Vector::item12, typename Vector::item13
1004 , typename Vector::item14, typename Vector::item15
1005 , typename Vector::item16, typename Vector::item17
1006 > type;
1007 };
1008 };
1009
1010 template< typename V >
1011 struct v_at< V,19 >
1012 {
1013 typedef typename V::item19 type;
1014 };
1015
1016 template<
1017 typename T0, typename T1, typename T2, typename T3, typename T4
1018 , typename T5, typename T6, typename T7, typename T8, typename T9
1019 , typename T10, typename T11, typename T12, typename T13, typename T14
1020 , typename T15, typename T16, typename T17, typename T18, typename T19
1021 >
1022 struct vector20
1023 {
1024 typedef aux::vector_tag<20> tag;
1025 typedef vector20 type;
1026 typedef T0 item0;
1027 typedef T1 item1;
1028 typedef T2 item2;
1029 typedef T3 item3;
1030 typedef T4 item4;
1031 typedef T5 item5;
1032 typedef T6 item6;
1033 typedef T7 item7;
1034 typedef T8 item8;
1035 typedef T9 item9;
1036 typedef T10 item10;
1037 typedef T11 item11;
1038 typedef T12 item12;
1039 typedef T13 item13;
1040 typedef T14 item14;
1041 typedef T15 item15;
1042 typedef T16 item16;
1043 typedef T17 item17;
1044 typedef T18 item18;
1045 typedef T19 item19;
1046
1047
1048 typedef void_ item20;
1049 typedef T19 back;
1050 typedef v_iter< type,0 > begin;
1051 typedef v_iter< type,20 > end;
1052 };
1053
1054 template<>
1055 struct push_front_impl< aux::vector_tag<19> >
1056 {
1057 template< typename Vector, typename T > struct apply
1058 {
1059 typedef vector20<
1060 T
1061 ,
1062 typename Vector::item0, typename Vector::item1
1063 , typename Vector::item2, typename Vector::item3
1064 , typename Vector::item4, typename Vector::item5
1065 , typename Vector::item6, typename Vector::item7
1066 , typename Vector::item8, typename Vector::item9
1067 , typename Vector::item10, typename Vector::item11
1068 , typename Vector::item12, typename Vector::item13
1069 , typename Vector::item14, typename Vector::item15
1070 , typename Vector::item16, typename Vector::item17
1071 , typename Vector::item18
1072 > type;
1073 };
1074 };
1075
1076 template<>
1077 struct pop_front_impl< aux::vector_tag<20> >
1078 {
1079 template< typename Vector > struct apply
1080 {
1081 typedef vector19<
1082 typename Vector::item1, typename Vector::item2
1083 , typename Vector::item3, typename Vector::item4
1084 , typename Vector::item5, typename Vector::item6
1085 , typename Vector::item7, typename Vector::item8
1086 , typename Vector::item9, typename Vector::item10
1087 , typename Vector::item11, typename Vector::item12
1088 , typename Vector::item13, typename Vector::item14
1089 , typename Vector::item15, typename Vector::item16
1090 , typename Vector::item17, typename Vector::item18
1091 , typename Vector::item19
1092 > type;
1093 };
1094 };
1095
1096 template<>
1097 struct push_back_impl< aux::vector_tag<19> >
1098 {
1099 template< typename Vector, typename T > struct apply
1100 {
1101 typedef vector20<
1102 typename Vector::item0, typename Vector::item1
1103 , typename Vector::item2, typename Vector::item3
1104 , typename Vector::item4, typename Vector::item5
1105 , typename Vector::item6, typename Vector::item7
1106 , typename Vector::item8, typename Vector::item9
1107 , typename Vector::item10, typename Vector::item11
1108 , typename Vector::item12, typename Vector::item13
1109 , typename Vector::item14, typename Vector::item15
1110 , typename Vector::item16, typename Vector::item17
1111 , typename Vector::item18
1112 ,
1113 T
1114 > type;
1115 };
1116 };
1117
1118 template<>
1119 struct pop_back_impl< aux::vector_tag<20> >
1120 {
1121 template< typename Vector > struct apply
1122 {
1123 typedef vector19<
1124 typename Vector::item0, typename Vector::item1
1125 , typename Vector::item2, typename Vector::item3
1126 , typename Vector::item4, typename Vector::item5
1127 , typename Vector::item6, typename Vector::item7
1128 , typename Vector::item8, typename Vector::item9
1129 , typename Vector::item10, typename Vector::item11
1130 , typename Vector::item12, typename Vector::item13
1131 , typename Vector::item14, typename Vector::item15
1132 , typename Vector::item16, typename Vector::item17
1133 , typename Vector::item18
1134 > type;
1135 };
1136 };
1137
1138 template< typename V >
1139 struct v_at< V,20 >
1140 {
1141 typedef typename V::item20 type;
1142 };
1143
1144 }}