source: NonGTP/Boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp @ 857

Revision 857, 46.9 KB checked in by igarcia, 18 years ago (diff)
Line 
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
106namespace aux {
107template<> struct v_at_impl<11>
108{
109    template< typename V_ > struct result_
110    {
111        typedef typename V_::item11 type;
112    };
113};
114
115}
116
117template<>
118struct 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
127template<>
128struct front_impl< aux::vector_tag<11> >
129{
130    template< typename Vector > struct apply
131    {
132        typedef typename Vector::item0 type;
133    };
134};
135
136template<>
137struct back_impl< aux::vector_tag<11> >
138{
139    template< typename Vector > struct apply
140    {
141        typedef typename Vector::back type;
142    };
143};
144
145template<>
146struct empty_impl< aux::vector_tag<11> >
147{
148    template< typename Vector > struct apply
149        : false_
150    {
151    };
152};
153
154template<>
155struct size_impl< aux::vector_tag<11> >
156{
157    template< typename Vector > struct apply
158        : long_<11>
159    {
160    };
161};
162
163template<>
164struct O1_size_impl< aux::vector_tag<11> >
165    : size_impl< aux::vector_tag<11> >
166{
167};
168
169template<>
170struct clear_impl< aux::vector_tag<11> >
171{
172    template< typename Vector > struct apply
173    {
174        typedef vector0<> type;
175    };
176};
177
178template<
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    >
183struct 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
207template<>
208struct 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
225template<>
226struct 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
241template<>
242struct 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
259template<>
260struct 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
275namespace aux {
276template<> struct v_at_impl<12>
277{
278    template< typename V_ > struct result_
279    {
280        typedef typename V_::item12 type;
281    };
282};
283
284}
285
286template<>
287struct 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
296template<>
297struct front_impl< aux::vector_tag<12> >
298{
299    template< typename Vector > struct apply
300    {
301        typedef typename Vector::item0 type;
302    };
303};
304
305template<>
306struct back_impl< aux::vector_tag<12> >
307{
308    template< typename Vector > struct apply
309    {
310        typedef typename Vector::back type;
311    };
312};
313
314template<>
315struct empty_impl< aux::vector_tag<12> >
316{
317    template< typename Vector > struct apply
318        : false_
319    {
320    };
321};
322
323template<>
324struct size_impl< aux::vector_tag<12> >
325{
326    template< typename Vector > struct apply
327        : long_<12>
328    {
329    };
330};
331
332template<>
333struct O1_size_impl< aux::vector_tag<12> >
334    : size_impl< aux::vector_tag<12> >
335{
336};
337
338template<>
339struct clear_impl< aux::vector_tag<12> >
340{
341    template< typename Vector > struct apply
342    {
343        typedef vector0<> type;
344    };
345};
346
347template<
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    >
352struct 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
377template<>
378struct 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
395template<>
396struct 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
411template<>
412struct 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
429template<>
430struct 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
445namespace aux {
446template<> struct v_at_impl<13>
447{
448    template< typename V_ > struct result_
449    {
450        typedef typename V_::item13 type;
451    };
452};
453
454}
455
456template<>
457struct 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
466template<>
467struct front_impl< aux::vector_tag<13> >
468{
469    template< typename Vector > struct apply
470    {
471        typedef typename Vector::item0 type;
472    };
473};
474
475template<>
476struct back_impl< aux::vector_tag<13> >
477{
478    template< typename Vector > struct apply
479    {
480        typedef typename Vector::back type;
481    };
482};
483
484template<>
485struct empty_impl< aux::vector_tag<13> >
486{
487    template< typename Vector > struct apply
488        : false_
489    {
490    };
491};
492
493template<>
494struct size_impl< aux::vector_tag<13> >
495{
496    template< typename Vector > struct apply
497        : long_<13>
498    {
499    };
500};
501
502template<>
503struct O1_size_impl< aux::vector_tag<13> >
504    : size_impl< aux::vector_tag<13> >
505{
506};
507
508template<>
509struct clear_impl< aux::vector_tag<13> >
510{
511    template< typename Vector > struct apply
512    {
513        typedef vector0<> type;
514    };
515};
516
517template<
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    >
522struct 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
548template<>
549struct 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
567template<>
568struct 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
584template<>
585struct 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
603template<>
604struct 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
620namespace aux {
621template<> struct v_at_impl<14>
622{
623    template< typename V_ > struct result_
624    {
625        typedef typename V_::item14 type;
626    };
627};
628
629}
630
631template<>
632struct 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
641template<>
642struct front_impl< aux::vector_tag<14> >
643{
644    template< typename Vector > struct apply
645    {
646        typedef typename Vector::item0 type;
647    };
648};
649
650template<>
651struct back_impl< aux::vector_tag<14> >
652{
653    template< typename Vector > struct apply
654    {
655        typedef typename Vector::back type;
656    };
657};
658
659template<>
660struct empty_impl< aux::vector_tag<14> >
661{
662    template< typename Vector > struct apply
663        : false_
664    {
665    };
666};
667
668template<>
669struct size_impl< aux::vector_tag<14> >
670{
671    template< typename Vector > struct apply
672        : long_<14>
673    {
674    };
675};
676
677template<>
678struct O1_size_impl< aux::vector_tag<14> >
679    : size_impl< aux::vector_tag<14> >
680{
681};
682
683template<>
684struct clear_impl< aux::vector_tag<14> >
685{
686    template< typename Vector > struct apply
687    {
688        typedef vector0<> type;
689    };
690};
691
692template<
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    >
697struct 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
724template<>
725struct 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
743template<>
744struct 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
760template<>
761struct 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
779template<>
780struct 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
796namespace aux {
797template<> struct v_at_impl<15>
798{
799    template< typename V_ > struct result_
800    {
801        typedef typename V_::item15 type;
802    };
803};
804
805}
806
807template<>
808struct 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
817template<>
818struct front_impl< aux::vector_tag<15> >
819{
820    template< typename Vector > struct apply
821    {
822        typedef typename Vector::item0 type;
823    };
824};
825
826template<>
827struct back_impl< aux::vector_tag<15> >
828{
829    template< typename Vector > struct apply
830    {
831        typedef typename Vector::back type;
832    };
833};
834
835template<>
836struct empty_impl< aux::vector_tag<15> >
837{
838    template< typename Vector > struct apply
839        : false_
840    {
841    };
842};
843
844template<>
845struct size_impl< aux::vector_tag<15> >
846{
847    template< typename Vector > struct apply
848        : long_<15>
849    {
850    };
851};
852
853template<>
854struct O1_size_impl< aux::vector_tag<15> >
855    : size_impl< aux::vector_tag<15> >
856{
857};
858
859template<>
860struct clear_impl< aux::vector_tag<15> >
861{
862    template< typename Vector > struct apply
863    {
864        typedef vector0<> type;
865    };
866};
867
868template<
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    >
874struct 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
902template<>
903struct 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
922template<>
923struct 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
940template<>
941struct 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
960template<>
961struct 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
978namespace aux {
979template<> struct v_at_impl<16>
980{
981    template< typename V_ > struct result_
982    {
983        typedef typename V_::item16 type;
984    };
985};
986
987}
988
989template<>
990struct 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
999template<>
1000struct front_impl< aux::vector_tag<16> >
1001{
1002    template< typename Vector > struct apply
1003    {
1004        typedef typename Vector::item0 type;
1005    };
1006};
1007
1008template<>
1009struct back_impl< aux::vector_tag<16> >
1010{
1011    template< typename Vector > struct apply
1012    {
1013        typedef typename Vector::back type;
1014    };
1015};
1016
1017template<>
1018struct empty_impl< aux::vector_tag<16> >
1019{
1020    template< typename Vector > struct apply
1021        : false_
1022    {
1023    };
1024};
1025
1026template<>
1027struct size_impl< aux::vector_tag<16> >
1028{
1029    template< typename Vector > struct apply
1030        : long_<16>
1031    {
1032    };
1033};
1034
1035template<>
1036struct O1_size_impl< aux::vector_tag<16> >
1037    : size_impl< aux::vector_tag<16> >
1038{
1039};
1040
1041template<>
1042struct clear_impl< aux::vector_tag<16> >
1043{
1044    template< typename Vector > struct apply
1045    {
1046        typedef vector0<> type;
1047    };
1048};
1049
1050template<
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    >
1056struct 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
1085template<>
1086struct 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
1105template<>
1106struct 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
1123template<>
1124struct 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
1143template<>
1144struct 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
1161namespace aux {
1162template<> struct v_at_impl<17>
1163{
1164    template< typename V_ > struct result_
1165    {
1166        typedef typename V_::item17 type;
1167    };
1168};
1169
1170}
1171
1172template<>
1173struct 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
1182template<>
1183struct front_impl< aux::vector_tag<17> >
1184{
1185    template< typename Vector > struct apply
1186    {
1187        typedef typename Vector::item0 type;
1188    };
1189};
1190
1191template<>
1192struct back_impl< aux::vector_tag<17> >
1193{
1194    template< typename Vector > struct apply
1195    {
1196        typedef typename Vector::back type;
1197    };
1198};
1199
1200template<>
1201struct empty_impl< aux::vector_tag<17> >
1202{
1203    template< typename Vector > struct apply
1204        : false_
1205    {
1206    };
1207};
1208
1209template<>
1210struct size_impl< aux::vector_tag<17> >
1211{
1212    template< typename Vector > struct apply
1213        : long_<17>
1214    {
1215    };
1216};
1217
1218template<>
1219struct O1_size_impl< aux::vector_tag<17> >
1220    : size_impl< aux::vector_tag<17> >
1221{
1222};
1223
1224template<>
1225struct clear_impl< aux::vector_tag<17> >
1226{
1227    template< typename Vector > struct apply
1228    {
1229        typedef vector0<> type;
1230    };
1231};
1232
1233template<
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    >
1239struct 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
1269template<>
1270struct 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
1290template<>
1291struct 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
1309template<>
1310struct 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
1330template<>
1331struct 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
1349namespace aux {
1350template<> struct v_at_impl<18>
1351{
1352    template< typename V_ > struct result_
1353    {
1354        typedef typename V_::item18 type;
1355    };
1356};
1357
1358}
1359
1360template<>
1361struct 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
1370template<>
1371struct front_impl< aux::vector_tag<18> >
1372{
1373    template< typename Vector > struct apply
1374    {
1375        typedef typename Vector::item0 type;
1376    };
1377};
1378
1379template<>
1380struct back_impl< aux::vector_tag<18> >
1381{
1382    template< typename Vector > struct apply
1383    {
1384        typedef typename Vector::back type;
1385    };
1386};
1387
1388template<>
1389struct empty_impl< aux::vector_tag<18> >
1390{
1391    template< typename Vector > struct apply
1392        : false_
1393    {
1394    };
1395};
1396
1397template<>
1398struct size_impl< aux::vector_tag<18> >
1399{
1400    template< typename Vector > struct apply
1401        : long_<18>
1402    {
1403    };
1404};
1405
1406template<>
1407struct O1_size_impl< aux::vector_tag<18> >
1408    : size_impl< aux::vector_tag<18> >
1409{
1410};
1411
1412template<>
1413struct clear_impl< aux::vector_tag<18> >
1414{
1415    template< typename Vector > struct apply
1416    {
1417        typedef vector0<> type;
1418    };
1419};
1420
1421template<
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    >
1427struct 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
1458template<>
1459struct 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
1479template<>
1480struct 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
1498template<>
1499struct 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
1519template<>
1520struct 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
1538namespace aux {
1539template<> struct v_at_impl<19>
1540{
1541    template< typename V_ > struct result_
1542    {
1543        typedef typename V_::item19 type;
1544    };
1545};
1546
1547}
1548
1549template<>
1550struct 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
1559template<>
1560struct front_impl< aux::vector_tag<19> >
1561{
1562    template< typename Vector > struct apply
1563    {
1564        typedef typename Vector::item0 type;
1565    };
1566};
1567
1568template<>
1569struct back_impl< aux::vector_tag<19> >
1570{
1571    template< typename Vector > struct apply
1572    {
1573        typedef typename Vector::back type;
1574    };
1575};
1576
1577template<>
1578struct empty_impl< aux::vector_tag<19> >
1579{
1580    template< typename Vector > struct apply
1581        : false_
1582    {
1583    };
1584};
1585
1586template<>
1587struct size_impl< aux::vector_tag<19> >
1588{
1589    template< typename Vector > struct apply
1590        : long_<19>
1591    {
1592    };
1593};
1594
1595template<>
1596struct O1_size_impl< aux::vector_tag<19> >
1597    : size_impl< aux::vector_tag<19> >
1598{
1599};
1600
1601template<>
1602struct clear_impl< aux::vector_tag<19> >
1603{
1604    template< typename Vector > struct apply
1605    {
1606        typedef vector0<> type;
1607    };
1608};
1609
1610template<
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    >
1616struct 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
1648template<>
1649struct 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
1670template<>
1671struct 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
1690template<>
1691struct 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
1712template<>
1713struct 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
1732namespace aux {
1733template<> struct v_at_impl<20>
1734{
1735    template< typename V_ > struct result_
1736    {
1737        typedef typename V_::item20 type;
1738    };
1739};
1740
1741}
1742
1743template<>
1744struct 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
1753template<>
1754struct front_impl< aux::vector_tag<20> >
1755{
1756    template< typename Vector > struct apply
1757    {
1758        typedef typename Vector::item0 type;
1759    };
1760};
1761
1762template<>
1763struct back_impl< aux::vector_tag<20> >
1764{
1765    template< typename Vector > struct apply
1766    {
1767        typedef typename Vector::back type;
1768    };
1769};
1770
1771template<>
1772struct empty_impl< aux::vector_tag<20> >
1773{
1774    template< typename Vector > struct apply
1775        : false_
1776    {
1777    };
1778};
1779
1780template<>
1781struct size_impl< aux::vector_tag<20> >
1782{
1783    template< typename Vector > struct apply
1784        : long_<20>
1785    {
1786    };
1787};
1788
1789template<>
1790struct O1_size_impl< aux::vector_tag<20> >
1791    : size_impl< aux::vector_tag<20> >
1792{
1793};
1794
1795template<>
1796struct clear_impl< aux::vector_tag<20> >
1797{
1798    template< typename Vector > struct apply
1799    {
1800        typedef vector0<> type;
1801    };
1802};
1803
1804}}
Note: See TracBrowser for help on using the repository browser.