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