]> git.proxmox.com Git - ceph.git/blob - 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
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
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
18 >
19 struct 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
42 template<>
43 struct 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
59 template<>
60 struct 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
74 template<>
75 struct 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
91 template<>
92 struct 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
106 template< typename V >
107 struct v_at< V,11 >
108 {
109 typedef typename V::item11 type;
110 };
111
112 template<
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 >
117 struct 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
141 template<>
142 struct 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
159 template<>
160 struct 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
175 template<>
176 struct 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
193 template<>
194 struct 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
209 template< typename V >
210 struct v_at< V,12 >
211 {
212 typedef typename V::item12 type;
213 };
214
215 template<
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 >
220 struct 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
245 template<>
246 struct 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
263 template<>
264 struct 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
279 template<>
280 struct 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
297 template<>
298 struct 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
313 template< typename V >
314 struct v_at< V,13 >
315 {
316 typedef typename V::item13 type;
317 };
318
319 template<
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 >
324 struct 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
350 template<>
351 struct 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
369 template<>
370 struct 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
386 template<>
387 struct 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
405 template<>
406 struct 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
422 template< typename V >
423 struct v_at< V,14 >
424 {
425 typedef typename V::item14 type;
426 };
427
428 template<
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 >
433 struct 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
460 template<>
461 struct 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
479 template<>
480 struct 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
496 template<>
497 struct 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
515 template<>
516 struct 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
532 template< typename V >
533 struct v_at< V,15 >
534 {
535 typedef typename V::item15 type;
536 };
537
538 template<
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 >
544 struct 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
572 template<>
573 struct 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
592 template<>
593 struct 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
610 template<>
611 struct 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
630 template<>
631 struct 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
648 template< typename V >
649 struct v_at< V,16 >
650 {
651 typedef typename V::item16 type;
652 };
653
654 template<
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 >
660 struct 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
689 template<>
690 struct 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
709 template<>
710 struct 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
727 template<>
728 struct 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
747 template<>
748 struct 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
765 template< typename V >
766 struct v_at< V,17 >
767 {
768 typedef typename V::item17 type;
769 };
770
771 template<
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 >
777 struct 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
807 template<>
808 struct 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
828 template<>
829 struct 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
847 template<>
848 struct 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
868 template<>
869 struct 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
887 template< typename V >
888 struct v_at< V,18 >
889 {
890 typedef typename V::item18 type;
891 };
892
893 template<
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 >
899 struct 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
930 template<>
931 struct 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
951 template<>
952 struct 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
970 template<>
971 struct 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
991 template<>
992 struct 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
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 }}