]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/mpl/include/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / mpl / include / boost / mpl / vector / aux_ / preprocessed / plain / vector20.hpp
CommitLineData
7c673cae
FG
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/vector20.hpp" header
10// -- DO NOT modify by hand!
11
12namespace boost { namespace mpl {
13
14template<
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
18 >
19struct vector11
20{
21 typedef aux::vector_tag<11> tag;
22 typedef vector11 type;
23 typedef T0 item0;
24 typedef T1 item1;
25 typedef T2 item2;
26 typedef T3 item3;
27 typedef T4 item4;
28 typedef T5 item5;
29 typedef T6 item6;
30 typedef T7 item7;
31 typedef T8 item8;
32 typedef T9 item9;
33 typedef T10 item10;
34
35
36 typedef void_ item11;
37 typedef T10 back;
38 typedef v_iter< type,0 > begin;
39 typedef v_iter< type,11 > end;
40};
41
42template<>
43struct push_front_impl< aux::vector_tag<10> >
44{
45 template< typename Vector, typename T > struct apply
46 {
47 typedef vector11<
48 T
49 ,
50 typename Vector::item0, typename Vector::item1
51 , typename Vector::item2, typename Vector::item3
52 , typename Vector::item4, typename Vector::item5
53 , typename Vector::item6, typename Vector::item7
54 , typename Vector::item8, typename Vector::item9
55 > type;
56 };
57};
58
59template<>
60struct pop_front_impl< aux::vector_tag<11> >
61{
62 template< typename Vector > struct apply
63 {
64 typedef vector10<
65 typename Vector::item1, typename Vector::item2
66 , typename Vector::item3, typename Vector::item4
67 , typename Vector::item5, typename Vector::item6
68 , typename Vector::item7, typename Vector::item8
69 , typename Vector::item9, typename Vector::item10
70 > type;
71 };
72};
73
74template<>
75struct push_back_impl< aux::vector_tag<10> >
76{
77 template< typename Vector, typename T > struct apply
78 {
79 typedef vector11<
80 typename Vector::item0, typename Vector::item1
81 , typename Vector::item2, typename Vector::item3
82 , typename Vector::item4, typename Vector::item5
83 , typename Vector::item6, typename Vector::item7
84 , typename Vector::item8, typename Vector::item9
85 ,
86 T
87 > type;
88 };
89};
90
91template<>
92struct pop_back_impl< aux::vector_tag<11> >
93{
94 template< typename Vector > struct apply
95 {
96 typedef vector10<
97 typename Vector::item0, typename Vector::item1
98 , typename Vector::item2, typename Vector::item3
99 , typename Vector::item4, typename Vector::item5
100 , typename Vector::item6, typename Vector::item7
101 , typename Vector::item8, typename Vector::item9
102 > type;
103 };
104};
105
106template< typename V >
107struct v_at< V,11 >
108{
109 typedef typename V::item11 type;
110};
111
112template<
113 typename T0, typename T1, typename T2, typename T3, typename T4
114 , typename T5, typename T6, typename T7, typename T8, typename T9
115 , typename T10, typename T11
116 >
117struct vector12
118{
119 typedef aux::vector_tag<12> tag;
120 typedef vector12 type;
121 typedef T0 item0;
122 typedef T1 item1;
123 typedef T2 item2;
124 typedef T3 item3;
125 typedef T4 item4;
126 typedef T5 item5;
127 typedef T6 item6;
128 typedef T7 item7;
129 typedef T8 item8;
130 typedef T9 item9;
131 typedef T10 item10;
132 typedef T11 item11;
133
134
135 typedef void_ item12;
136 typedef T11 back;
137 typedef v_iter< type,0 > begin;
138 typedef v_iter< type,12 > end;
139};
140
141template<>
142struct push_front_impl< aux::vector_tag<11> >
143{
144 template< typename Vector, typename T > struct apply
145 {
146 typedef vector12<
147 T
148 ,
149 typename Vector::item0, typename Vector::item1
150 , typename Vector::item2, typename Vector::item3
151 , typename Vector::item4, typename Vector::item5
152 , typename Vector::item6, typename Vector::item7
153 , typename Vector::item8, typename Vector::item9
154 , typename Vector::item10
155 > type;
156 };
157};
158
159template<>
160struct pop_front_impl< aux::vector_tag<12> >
161{
162 template< typename Vector > struct apply
163 {
164 typedef vector11<
165 typename Vector::item1, typename Vector::item2
166 , typename Vector::item3, typename Vector::item4
167 , typename Vector::item5, typename Vector::item6
168 , typename Vector::item7, typename Vector::item8
169 , typename Vector::item9, typename Vector::item10
170 , typename Vector::item11
171 > type;
172 };
173};
174
175template<>
176struct push_back_impl< aux::vector_tag<11> >
177{
178 template< typename Vector, typename T > struct apply
179 {
180 typedef vector12<
181 typename Vector::item0, typename Vector::item1
182 , typename Vector::item2, typename Vector::item3
183 , typename Vector::item4, typename Vector::item5
184 , typename Vector::item6, typename Vector::item7
185 , typename Vector::item8, typename Vector::item9
186 , typename Vector::item10
187 ,
188 T
189 > type;
190 };
191};
192
193template<>
194struct pop_back_impl< aux::vector_tag<12> >
195{
196 template< typename Vector > struct apply
197 {
198 typedef vector11<
199 typename Vector::item0, typename Vector::item1
200 , typename Vector::item2, typename Vector::item3
201 , typename Vector::item4, typename Vector::item5
202 , typename Vector::item6, typename Vector::item7
203 , typename Vector::item8, typename Vector::item9
204 , typename Vector::item10
205 > type;
206 };
207};
208
209template< typename V >
210struct v_at< V,12 >
211{
212 typedef typename V::item12 type;
213};
214
215template<
216 typename T0, typename T1, typename T2, typename T3, typename T4
217 , typename T5, typename T6, typename T7, typename T8, typename T9
218 , typename T10, typename T11, typename T12
219 >
220struct vector13
221{
222 typedef aux::vector_tag<13> tag;
223 typedef vector13 type;
224 typedef T0 item0;
225 typedef T1 item1;
226 typedef T2 item2;
227 typedef T3 item3;
228 typedef T4 item4;
229 typedef T5 item5;
230 typedef T6 item6;
231 typedef T7 item7;
232 typedef T8 item8;
233 typedef T9 item9;
234 typedef T10 item10;
235 typedef T11 item11;
236 typedef T12 item12;
237
238
239 typedef void_ item13;
240 typedef T12 back;
241 typedef v_iter< type,0 > begin;
242 typedef v_iter< type,13 > end;
243};
244
245template<>
246struct push_front_impl< aux::vector_tag<12> >
247{
248 template< typename Vector, typename T > struct apply
249 {
250 typedef vector13<
251 T
252 ,
253 typename Vector::item0, typename Vector::item1
254 , typename Vector::item2, typename Vector::item3
255 , typename Vector::item4, typename Vector::item5
256 , typename Vector::item6, typename Vector::item7
257 , typename Vector::item8, typename Vector::item9
258 , typename Vector::item10, typename Vector::item11
259 > type;
260 };
261};
262
263template<>
264struct pop_front_impl< aux::vector_tag<13> >
265{
266 template< typename Vector > struct apply
267 {
268 typedef vector12<
269 typename Vector::item1, typename Vector::item2
270 , typename Vector::item3, typename Vector::item4
271 , typename Vector::item5, typename Vector::item6
272 , typename Vector::item7, typename Vector::item8
273 , typename Vector::item9, typename Vector::item10
274 , typename Vector::item11, typename Vector::item12
275 > type;
276 };
277};
278
279template<>
280struct push_back_impl< aux::vector_tag<12> >
281{
282 template< typename Vector, typename T > struct apply
283 {
284 typedef vector13<
285 typename Vector::item0, typename Vector::item1
286 , typename Vector::item2, typename Vector::item3
287 , typename Vector::item4, typename Vector::item5
288 , typename Vector::item6, typename Vector::item7
289 , typename Vector::item8, typename Vector::item9
290 , typename Vector::item10, typename Vector::item11
291 ,
292 T
293 > type;
294 };
295};
296
297template<>
298struct pop_back_impl< aux::vector_tag<13> >
299{
300 template< typename Vector > struct apply
301 {
302 typedef vector12<
303 typename Vector::item0, typename Vector::item1
304 , typename Vector::item2, typename Vector::item3
305 , typename Vector::item4, typename Vector::item5
306 , typename Vector::item6, typename Vector::item7
307 , typename Vector::item8, typename Vector::item9
308 , typename Vector::item10, typename Vector::item11
309 > type;
310 };
311};
312
313template< typename V >
314struct v_at< V,13 >
315{
316 typedef typename V::item13 type;
317};
318
319template<
320 typename T0, typename T1, typename T2, typename T3, typename T4
321 , typename T5, typename T6, typename T7, typename T8, typename T9
322 , typename T10, typename T11, typename T12, typename T13
323 >
324struct vector14
325{
326 typedef aux::vector_tag<14> tag;
327 typedef vector14 type;
328 typedef T0 item0;
329 typedef T1 item1;
330 typedef T2 item2;
331 typedef T3 item3;
332 typedef T4 item4;
333 typedef T5 item5;
334 typedef T6 item6;
335 typedef T7 item7;
336 typedef T8 item8;
337 typedef T9 item9;
338 typedef T10 item10;
339 typedef T11 item11;
340 typedef T12 item12;
341 typedef T13 item13;
342
343
344 typedef void_ item14;
345 typedef T13 back;
346 typedef v_iter< type,0 > begin;
347 typedef v_iter< type,14 > end;
348};
349
350template<>
351struct push_front_impl< aux::vector_tag<13> >
352{
353 template< typename Vector, typename T > struct apply
354 {
355 typedef vector14<
356 T
357 ,
358 typename Vector::item0, typename Vector::item1
359 , typename Vector::item2, typename Vector::item3
360 , typename Vector::item4, typename Vector::item5
361 , typename Vector::item6, typename Vector::item7
362 , typename Vector::item8, typename Vector::item9
363 , typename Vector::item10, typename Vector::item11
364 , typename Vector::item12
365 > type;
366 };
367};
368
369template<>
370struct pop_front_impl< aux::vector_tag<14> >
371{
372 template< typename Vector > struct apply
373 {
374 typedef vector13<
375 typename Vector::item1, typename Vector::item2
376 , typename Vector::item3, typename Vector::item4
377 , typename Vector::item5, typename Vector::item6
378 , typename Vector::item7, typename Vector::item8
379 , typename Vector::item9, typename Vector::item10
380 , typename Vector::item11, typename Vector::item12
381 , typename Vector::item13
382 > type;
383 };
384};
385
386template<>
387struct push_back_impl< aux::vector_tag<13> >
388{
389 template< typename Vector, typename T > struct apply
390 {
391 typedef vector14<
392 typename Vector::item0, typename Vector::item1
393 , typename Vector::item2, typename Vector::item3
394 , typename Vector::item4, typename Vector::item5
395 , typename Vector::item6, typename Vector::item7
396 , typename Vector::item8, typename Vector::item9
397 , typename Vector::item10, typename Vector::item11
398 , typename Vector::item12
399 ,
400 T
401 > type;
402 };
403};
404
405template<>
406struct pop_back_impl< aux::vector_tag<14> >
407{
408 template< typename Vector > struct apply
409 {
410 typedef vector13<
411 typename Vector::item0, typename Vector::item1
412 , typename Vector::item2, typename Vector::item3
413 , typename Vector::item4, typename Vector::item5
414 , typename Vector::item6, typename Vector::item7
415 , typename Vector::item8, typename Vector::item9
416 , typename Vector::item10, typename Vector::item11
417 , typename Vector::item12
418 > type;
419 };
420};
421
422template< typename V >
423struct v_at< V,14 >
424{
425 typedef typename V::item14 type;
426};
427
428template<
429 typename T0, typename T1, typename T2, typename T3, typename T4
430 , typename T5, typename T6, typename T7, typename T8, typename T9
431 , typename T10, typename T11, typename T12, typename T13, typename T14
432 >
433struct vector15
434{
435 typedef aux::vector_tag<15> tag;
436 typedef vector15 type;
437 typedef T0 item0;
438 typedef T1 item1;
439 typedef T2 item2;
440 typedef T3 item3;
441 typedef T4 item4;
442 typedef T5 item5;
443 typedef T6 item6;
444 typedef T7 item7;
445 typedef T8 item8;
446 typedef T9 item9;
447 typedef T10 item10;
448 typedef T11 item11;
449 typedef T12 item12;
450 typedef T13 item13;
451 typedef T14 item14;
452
453
454 typedef void_ item15;
455 typedef T14 back;
456 typedef v_iter< type,0 > begin;
457 typedef v_iter< type,15 > end;
458};
459
460template<>
461struct push_front_impl< aux::vector_tag<14> >
462{
463 template< typename Vector, typename T > struct apply
464 {
465 typedef vector15<
466 T
467 ,
468 typename Vector::item0, typename Vector::item1
469 , typename Vector::item2, typename Vector::item3
470 , typename Vector::item4, typename Vector::item5
471 , typename Vector::item6, typename Vector::item7
472 , typename Vector::item8, typename Vector::item9
473 , typename Vector::item10, typename Vector::item11
474 , typename Vector::item12, typename Vector::item13
475 > type;
476 };
477};
478
479template<>
480struct pop_front_impl< aux::vector_tag<15> >
481{
482 template< typename Vector > struct apply
483 {
484 typedef vector14<
485 typename Vector::item1, typename Vector::item2
486 , typename Vector::item3, typename Vector::item4
487 , typename Vector::item5, typename Vector::item6
488 , typename Vector::item7, typename Vector::item8
489 , typename Vector::item9, typename Vector::item10
490 , typename Vector::item11, typename Vector::item12
491 , typename Vector::item13, typename Vector::item14
492 > type;
493 };
494};
495
496template<>
497struct push_back_impl< aux::vector_tag<14> >
498{
499 template< typename Vector, typename T > struct apply
500 {
501 typedef vector15<
502 typename Vector::item0, typename Vector::item1
503 , typename Vector::item2, typename Vector::item3
504 , typename Vector::item4, typename Vector::item5
505 , typename Vector::item6, typename Vector::item7
506 , typename Vector::item8, typename Vector::item9
507 , typename Vector::item10, typename Vector::item11
508 , typename Vector::item12, typename Vector::item13
509 ,
510 T
511 > type;
512 };
513};
514
515template<>
516struct pop_back_impl< aux::vector_tag<15> >
517{
518 template< typename Vector > struct apply
519 {
520 typedef vector14<
521 typename Vector::item0, typename Vector::item1
522 , typename Vector::item2, typename Vector::item3
523 , typename Vector::item4, typename Vector::item5
524 , typename Vector::item6, typename Vector::item7
525 , typename Vector::item8, typename Vector::item9
526 , typename Vector::item10, typename Vector::item11
527 , typename Vector::item12, typename Vector::item13
528 > type;
529 };
530};
531
532template< typename V >
533struct v_at< V,15 >
534{
535 typedef typename V::item15 type;
536};
537
538template<
539 typename T0, typename T1, typename T2, typename T3, typename T4
540 , typename T5, typename T6, typename T7, typename T8, typename T9
541 , typename T10, typename T11, typename T12, typename T13, typename T14
542 , typename T15
543 >
544struct vector16
545{
546 typedef aux::vector_tag<16> tag;
547 typedef vector16 type;
548 typedef T0 item0;
549 typedef T1 item1;
550 typedef T2 item2;
551 typedef T3 item3;
552 typedef T4 item4;
553 typedef T5 item5;
554 typedef T6 item6;
555 typedef T7 item7;
556 typedef T8 item8;
557 typedef T9 item9;
558 typedef T10 item10;
559 typedef T11 item11;
560 typedef T12 item12;
561 typedef T13 item13;
562 typedef T14 item14;
563 typedef T15 item15;
564
565
566 typedef void_ item16;
567 typedef T15 back;
568 typedef v_iter< type,0 > begin;
569 typedef v_iter< type,16 > end;
570};
571
572template<>
573struct push_front_impl< aux::vector_tag<15> >
574{
575 template< typename Vector, typename T > struct apply
576 {
577 typedef vector16<
578 T
579 ,
580 typename Vector::item0, typename Vector::item1
581 , typename Vector::item2, typename Vector::item3
582 , typename Vector::item4, typename Vector::item5
583 , typename Vector::item6, typename Vector::item7
584 , typename Vector::item8, typename Vector::item9
585 , typename Vector::item10, typename Vector::item11
586 , typename Vector::item12, typename Vector::item13
587 , typename Vector::item14
588 > type;
589 };
590};
591
592template<>
593struct pop_front_impl< aux::vector_tag<16> >
594{
595 template< typename Vector > struct apply
596 {
597 typedef vector15<
598 typename Vector::item1, typename Vector::item2
599 , typename Vector::item3, typename Vector::item4
600 , typename Vector::item5, typename Vector::item6
601 , typename Vector::item7, typename Vector::item8
602 , typename Vector::item9, typename Vector::item10
603 , typename Vector::item11, typename Vector::item12
604 , typename Vector::item13, typename Vector::item14
605 , typename Vector::item15
606 > type;
607 };
608};
609
610template<>
611struct push_back_impl< aux::vector_tag<15> >
612{
613 template< typename Vector, typename T > struct apply
614 {
615 typedef vector16<
616 typename Vector::item0, typename Vector::item1
617 , typename Vector::item2, typename Vector::item3
618 , typename Vector::item4, typename Vector::item5
619 , typename Vector::item6, typename Vector::item7
620 , typename Vector::item8, typename Vector::item9
621 , typename Vector::item10, typename Vector::item11
622 , typename Vector::item12, typename Vector::item13
623 , typename Vector::item14
624 ,
625 T
626 > type;
627 };
628};
629
630template<>
631struct pop_back_impl< aux::vector_tag<16> >
632{
633 template< typename Vector > struct apply
634 {
635 typedef vector15<
636 typename Vector::item0, typename Vector::item1
637 , typename Vector::item2, typename Vector::item3
638 , typename Vector::item4, typename Vector::item5
639 , typename Vector::item6, typename Vector::item7
640 , typename Vector::item8, typename Vector::item9
641 , typename Vector::item10, typename Vector::item11
642 , typename Vector::item12, typename Vector::item13
643 , typename Vector::item14
644 > type;
645 };
646};
647
648template< typename V >
649struct v_at< V,16 >
650{
651 typedef typename V::item16 type;
652};
653
654template<
655 typename T0, typename T1, typename T2, typename T3, typename T4
656 , typename T5, typename T6, typename T7, typename T8, typename T9
657 , typename T10, typename T11, typename T12, typename T13, typename T14
658 , typename T15, typename T16
659 >
660struct vector17
661{
662 typedef aux::vector_tag<17> tag;
663 typedef vector17 type;
664 typedef T0 item0;
665 typedef T1 item1;
666 typedef T2 item2;
667 typedef T3 item3;
668 typedef T4 item4;
669 typedef T5 item5;
670 typedef T6 item6;
671 typedef T7 item7;
672 typedef T8 item8;
673 typedef T9 item9;
674 typedef T10 item10;
675 typedef T11 item11;
676 typedef T12 item12;
677 typedef T13 item13;
678 typedef T14 item14;
679 typedef T15 item15;
680 typedef T16 item16;
681
682
683 typedef void_ item17;
684 typedef T16 back;
685 typedef v_iter< type,0 > begin;
686 typedef v_iter< type,17 > end;
687};
688
689template<>
690struct push_front_impl< aux::vector_tag<16> >
691{
692 template< typename Vector, typename T > struct apply
693 {
694 typedef vector17<
695 T
696 ,
697 typename Vector::item0, typename Vector::item1
698 , typename Vector::item2, typename Vector::item3
699 , typename Vector::item4, typename Vector::item5
700 , typename Vector::item6, typename Vector::item7
701 , typename Vector::item8, typename Vector::item9
702 , typename Vector::item10, typename Vector::item11
703 , typename Vector::item12, typename Vector::item13
704 , typename Vector::item14, typename Vector::item15
705 > type;
706 };
707};
708
709template<>
710struct pop_front_impl< aux::vector_tag<17> >
711{
712 template< typename Vector > struct apply
713 {
714 typedef vector16<
715 typename Vector::item1, typename Vector::item2
716 , typename Vector::item3, typename Vector::item4
717 , typename Vector::item5, typename Vector::item6
718 , typename Vector::item7, typename Vector::item8
719 , typename Vector::item9, typename Vector::item10
720 , typename Vector::item11, typename Vector::item12
721 , typename Vector::item13, typename Vector::item14
722 , typename Vector::item15, typename Vector::item16
723 > type;
724 };
725};
726
727template<>
728struct push_back_impl< aux::vector_tag<16> >
729{
730 template< typename Vector, typename T > struct apply
731 {
732 typedef vector17<
733 typename Vector::item0, typename Vector::item1
734 , typename Vector::item2, typename Vector::item3
735 , typename Vector::item4, typename Vector::item5
736 , typename Vector::item6, typename Vector::item7
737 , typename Vector::item8, typename Vector::item9
738 , typename Vector::item10, typename Vector::item11
739 , typename Vector::item12, typename Vector::item13
740 , typename Vector::item14, typename Vector::item15
741 ,
742 T
743 > type;
744 };
745};
746
747template<>
748struct pop_back_impl< aux::vector_tag<17> >
749{
750 template< typename Vector > struct apply
751 {
752 typedef vector16<
753 typename Vector::item0, typename Vector::item1
754 , typename Vector::item2, typename Vector::item3
755 , typename Vector::item4, typename Vector::item5
756 , typename Vector::item6, typename Vector::item7
757 , typename Vector::item8, typename Vector::item9
758 , typename Vector::item10, typename Vector::item11
759 , typename Vector::item12, typename Vector::item13
760 , typename Vector::item14, typename Vector::item15
761 > type;
762 };
763};
764
765template< typename V >
766struct v_at< V,17 >
767{
768 typedef typename V::item17 type;
769};
770
771template<
772 typename T0, typename T1, typename T2, typename T3, typename T4
773 , typename T5, typename T6, typename T7, typename T8, typename T9
774 , typename T10, typename T11, typename T12, typename T13, typename T14
775 , typename T15, typename T16, typename T17
776 >
777struct vector18
778{
779 typedef aux::vector_tag<18> tag;
780 typedef vector18 type;
781 typedef T0 item0;
782 typedef T1 item1;
783 typedef T2 item2;
784 typedef T3 item3;
785 typedef T4 item4;
786 typedef T5 item5;
787 typedef T6 item6;
788 typedef T7 item7;
789 typedef T8 item8;
790 typedef T9 item9;
791 typedef T10 item10;
792 typedef T11 item11;
793 typedef T12 item12;
794 typedef T13 item13;
795 typedef T14 item14;
796 typedef T15 item15;
797 typedef T16 item16;
798 typedef T17 item17;
799
800
801 typedef void_ item18;
802 typedef T17 back;
803 typedef v_iter< type,0 > begin;
804 typedef v_iter< type,18 > end;
805};
806
807template<>
808struct push_front_impl< aux::vector_tag<17> >
809{
810 template< typename Vector, typename T > struct apply
811 {
812 typedef vector18<
813 T
814 ,
815 typename Vector::item0, typename Vector::item1
816 , typename Vector::item2, typename Vector::item3
817 , typename Vector::item4, typename Vector::item5
818 , typename Vector::item6, typename Vector::item7
819 , typename Vector::item8, typename Vector::item9
820 , typename Vector::item10, typename Vector::item11
821 , typename Vector::item12, typename Vector::item13
822 , typename Vector::item14, typename Vector::item15
823 , typename Vector::item16
824 > type;
825 };
826};
827
828template<>
829struct pop_front_impl< aux::vector_tag<18> >
830{
831 template< typename Vector > struct apply
832 {
833 typedef vector17<
834 typename Vector::item1, typename Vector::item2
835 , typename Vector::item3, typename Vector::item4
836 , typename Vector::item5, typename Vector::item6
837 , typename Vector::item7, typename Vector::item8
838 , typename Vector::item9, typename Vector::item10
839 , typename Vector::item11, typename Vector::item12
840 , typename Vector::item13, typename Vector::item14
841 , typename Vector::item15, typename Vector::item16
842 , typename Vector::item17
843 > type;
844 };
845};
846
847template<>
848struct push_back_impl< aux::vector_tag<17> >
849{
850 template< typename Vector, typename T > struct apply
851 {
852 typedef vector18<
853 typename Vector::item0, typename Vector::item1
854 , typename Vector::item2, typename Vector::item3
855 , typename Vector::item4, typename Vector::item5
856 , typename Vector::item6, typename Vector::item7
857 , typename Vector::item8, typename Vector::item9
858 , typename Vector::item10, typename Vector::item11
859 , typename Vector::item12, typename Vector::item13
860 , typename Vector::item14, typename Vector::item15
861 , typename Vector::item16
862 ,
863 T
864 > type;
865 };
866};
867
868template<>
869struct pop_back_impl< aux::vector_tag<18> >
870{
871 template< typename Vector > struct apply
872 {
873 typedef vector17<
874 typename Vector::item0, typename Vector::item1
875 , typename Vector::item2, typename Vector::item3
876 , typename Vector::item4, typename Vector::item5
877 , typename Vector::item6, typename Vector::item7
878 , typename Vector::item8, typename Vector::item9
879 , typename Vector::item10, typename Vector::item11
880 , typename Vector::item12, typename Vector::item13
881 , typename Vector::item14, typename Vector::item15
882 , typename Vector::item16
883 > type;
884 };
885};
886
887template< typename V >
888struct v_at< V,18 >
889{
890 typedef typename V::item18 type;
891};
892
893template<
894 typename T0, typename T1, typename T2, typename T3, typename T4
895 , typename T5, typename T6, typename T7, typename T8, typename T9
896 , typename T10, typename T11, typename T12, typename T13, typename T14
897 , typename T15, typename T16, typename T17, typename T18
898 >
899struct vector19
900{
901 typedef aux::vector_tag<19> tag;
902 typedef vector19 type;
903 typedef T0 item0;
904 typedef T1 item1;
905 typedef T2 item2;
906 typedef T3 item3;
907 typedef T4 item4;
908 typedef T5 item5;
909 typedef T6 item6;
910 typedef T7 item7;
911 typedef T8 item8;
912 typedef T9 item9;
913 typedef T10 item10;
914 typedef T11 item11;
915 typedef T12 item12;
916 typedef T13 item13;
917 typedef T14 item14;
918 typedef T15 item15;
919 typedef T16 item16;
920 typedef T17 item17;
921 typedef T18 item18;
922
923
924 typedef void_ item19;
925 typedef T18 back;
926 typedef v_iter< type,0 > begin;
927 typedef v_iter< type,19 > end;
928};
929
930template<>
931struct push_front_impl< aux::vector_tag<18> >
932{
933 template< typename Vector, typename T > struct apply
934 {
935 typedef vector19<
936 T
937 ,
938 typename Vector::item0, typename Vector::item1
939 , typename Vector::item2, typename Vector::item3
940 , typename Vector::item4, typename Vector::item5
941 , typename Vector::item6, typename Vector::item7
942 , typename Vector::item8, typename Vector::item9
943 , typename Vector::item10, typename Vector::item11
944 , typename Vector::item12, typename Vector::item13
945 , typename Vector::item14, typename Vector::item15
946 , typename Vector::item16, typename Vector::item17
947 > type;
948 };
949};
950
951template<>
952struct pop_front_impl< aux::vector_tag<19> >
953{
954 template< typename Vector > struct apply
955 {
956 typedef vector18<
957 typename Vector::item1, typename Vector::item2
958 , typename Vector::item3, typename Vector::item4
959 , typename Vector::item5, typename Vector::item6
960 , typename Vector::item7, typename Vector::item8
961 , typename Vector::item9, typename Vector::item10
962 , typename Vector::item11, typename Vector::item12
963 , typename Vector::item13, typename Vector::item14
964 , typename Vector::item15, typename Vector::item16
965 , typename Vector::item17, typename Vector::item18
966 > type;
967 };
968};
969
970template<>
971struct push_back_impl< aux::vector_tag<18> >
972{
973 template< typename Vector, typename T > struct apply
974 {
975 typedef vector19<
976 typename Vector::item0, typename Vector::item1
977 , typename Vector::item2, typename Vector::item3
978 , typename Vector::item4, typename Vector::item5
979 , typename Vector::item6, typename Vector::item7
980 , typename Vector::item8, typename Vector::item9
981 , typename Vector::item10, typename Vector::item11
982 , typename Vector::item12, typename Vector::item13
983 , typename Vector::item14, typename Vector::item15
984 , typename Vector::item16, typename Vector::item17
985 ,
986 T
987 > type;
988 };
989};
990
991template<>
992struct pop_back_impl< aux::vector_tag<19> >
993{
994 template< typename Vector > struct apply
995 {
996 typedef vector18<
997 typename Vector::item0, typename Vector::item1
998 , typename Vector::item2, typename Vector::item3
999 , 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
1010template< typename V >
1011struct v_at< V,19 >
1012{
1013 typedef typename V::item19 type;
1014};
1015
1016template<
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 >
1022struct 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
1054template<>
1055struct 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
1076template<>
1077struct 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
1096template<>
1097struct 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
1118template<>
1119struct 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
1138template< typename V >
1139struct v_at< V,20 >
1140{
1141 typedef typename V::item20 type;
1142};
1143
1144}}