]> git.donarmstrong.com Git - rsem.git/blob - boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp
RSEM Source Codes
[rsem.git] / boost / mpl / vector / aux_ / preprocessed / no_ctps / vector30.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/vector30.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, typename T11, typename T12, typename T13, typename T14
18     , typename T15, typename T16, typename T17, typename T18, typename T19
19     , typename T20
20     >
21 struct vector21
22 {
23     typedef aux::vector_tag<21> tag;
24     typedef vector21 type;
25     typedef T0 item0;
26     typedef T1 item1;
27     typedef T2 item2;
28     typedef T3 item3;
29     typedef T4 item4;
30     typedef T5 item5;
31     typedef T6 item6;
32     typedef T7 item7;
33     typedef T8 item8;
34     typedef T9 item9;
35     typedef T10 item10;
36     typedef T11 item11;
37     typedef T12 item12;
38     typedef T13 item13;
39     typedef T14 item14;
40     typedef T15 item15;
41     typedef T16 item16;
42     typedef T17 item17;
43     typedef T18 item18;
44     typedef T19 item19;
45     typedef T20 item20;
46     
47
48     typedef void_ item21;
49     typedef T20 back;
50     typedef v_iter< type,0 > begin;
51     typedef v_iter< type,21 > end;
52 };
53
54 template<>
55 struct push_front_impl< aux::vector_tag<20> >
56 {
57     template< typename Vector, typename T > struct apply
58     {
59         typedef vector21<
60               T
61               ,
62               typename Vector::item0, typename Vector::item1
63             , typename Vector::item2, typename Vector::item3
64             , typename Vector::item4, typename Vector::item5
65             , typename Vector::item6, typename Vector::item7
66             , typename Vector::item8, typename Vector::item9
67             , typename Vector::item10, typename Vector::item11
68             , typename Vector::item12, typename Vector::item13
69             , typename Vector::item14, typename Vector::item15
70             , typename Vector::item16, typename Vector::item17
71             , typename Vector::item18, typename Vector::item19
72             > type;
73     };
74 };
75
76 template<>
77 struct pop_front_impl< aux::vector_tag<21> >
78 {
79     template< typename Vector > struct apply
80     {
81         typedef vector20<
82               typename Vector::item1, typename Vector::item2
83             , typename Vector::item3, typename Vector::item4
84             , typename Vector::item5, typename Vector::item6
85             , typename Vector::item7, typename Vector::item8
86             , typename Vector::item9, typename Vector::item10
87             , typename Vector::item11, typename Vector::item12
88             , typename Vector::item13, typename Vector::item14
89             , typename Vector::item15, typename Vector::item16
90             , typename Vector::item17, typename Vector::item18
91             , typename Vector::item19, typename Vector::item20
92             > type;
93     };
94 };
95
96 template<>
97 struct push_back_impl< aux::vector_tag<20> >
98 {
99     template< typename Vector, typename T > struct apply
100     {
101         typedef vector21<
102               typename Vector::item0, typename Vector::item1
103             , typename Vector::item2, typename Vector::item3
104             , typename Vector::item4, typename Vector::item5
105             , typename Vector::item6, typename Vector::item7
106             , typename Vector::item8, typename Vector::item9
107             , typename Vector::item10, typename Vector::item11
108             , typename Vector::item12, typename Vector::item13
109             , typename Vector::item14, typename Vector::item15
110             , typename Vector::item16, typename Vector::item17
111             , typename Vector::item18, typename Vector::item19
112               ,
113               T
114             > type;
115     };
116 };
117
118 template<>
119 struct pop_back_impl< aux::vector_tag<21> >
120 {
121     template< typename Vector > struct apply
122     {
123         typedef vector20<
124               typename Vector::item0, typename Vector::item1
125             , typename Vector::item2, typename Vector::item3
126             , typename Vector::item4, typename Vector::item5
127             , typename Vector::item6, typename Vector::item7
128             , typename Vector::item8, typename Vector::item9
129             , typename Vector::item10, typename Vector::item11
130             , typename Vector::item12, typename Vector::item13
131             , typename Vector::item14, typename Vector::item15
132             , typename Vector::item16, typename Vector::item17
133             , typename Vector::item18, typename Vector::item19
134             > type;
135     };
136 };
137
138 namespace aux {
139 template<> struct v_at_impl<21>
140 {
141     template< typename V_ > struct result_
142     {
143         typedef typename V_::item21 type;
144     };
145 };
146
147 }
148
149 template<>
150 struct at_impl< aux::vector_tag<21> >
151 {
152     template< typename V_, typename N > struct apply
153     {
154         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
155             ::template result_<V_>::type type;
156     };
157 };
158
159 template<>
160 struct front_impl< aux::vector_tag<21> >
161 {
162     template< typename Vector > struct apply
163     {
164         typedef typename Vector::item0 type;
165     };
166 };
167
168 template<>
169 struct back_impl< aux::vector_tag<21> >
170 {
171     template< typename Vector > struct apply
172     {
173         typedef typename Vector::back type;
174     };
175 };
176
177 template<>
178 struct empty_impl< aux::vector_tag<21> >
179 {
180     template< typename Vector > struct apply
181         : false_
182     {
183     };
184 };
185
186 template<>
187 struct size_impl< aux::vector_tag<21> >
188 {
189     template< typename Vector > struct apply
190         : long_<21>
191     {
192     };
193 };
194
195 template<>
196 struct O1_size_impl< aux::vector_tag<21> >
197     : size_impl< aux::vector_tag<21> >
198 {
199 };
200
201 template<>
202 struct clear_impl< aux::vector_tag<21> >
203 {
204     template< typename Vector > struct apply
205     {
206         typedef vector0<> type;
207     };
208 };
209
210 template<
211       typename T0, typename T1, typename T2, typename T3, typename T4
212     , typename T5, typename T6, typename T7, typename T8, typename T9
213     , typename T10, typename T11, typename T12, typename T13, typename T14
214     , typename T15, typename T16, typename T17, typename T18, typename T19
215     , typename T20, typename T21
216     >
217 struct vector22
218 {
219     typedef aux::vector_tag<22> tag;
220     typedef vector22 type;
221     typedef T0 item0;
222     typedef T1 item1;
223     typedef T2 item2;
224     typedef T3 item3;
225     typedef T4 item4;
226     typedef T5 item5;
227     typedef T6 item6;
228     typedef T7 item7;
229     typedef T8 item8;
230     typedef T9 item9;
231     typedef T10 item10;
232     typedef T11 item11;
233     typedef T12 item12;
234     typedef T13 item13;
235     typedef T14 item14;
236     typedef T15 item15;
237     typedef T16 item16;
238     typedef T17 item17;
239     typedef T18 item18;
240     typedef T19 item19;
241     typedef T20 item20;
242     typedef T21 item21;
243     
244
245     typedef void_ item22;
246     typedef T21 back;
247     typedef v_iter< type,0 > begin;
248     typedef v_iter< type,22 > end;
249 };
250
251 template<>
252 struct push_front_impl< aux::vector_tag<21> >
253 {
254     template< typename Vector, typename T > struct apply
255     {
256         typedef vector22<
257               T
258               ,
259               typename Vector::item0, typename Vector::item1
260             , typename Vector::item2, typename Vector::item3
261             , typename Vector::item4, typename Vector::item5
262             , typename Vector::item6, typename Vector::item7
263             , typename Vector::item8, typename Vector::item9
264             , typename Vector::item10, typename Vector::item11
265             , typename Vector::item12, typename Vector::item13
266             , typename Vector::item14, typename Vector::item15
267             , typename Vector::item16, typename Vector::item17
268             , typename Vector::item18, typename Vector::item19
269             , typename Vector::item20
270             > type;
271     };
272 };
273
274 template<>
275 struct pop_front_impl< aux::vector_tag<22> >
276 {
277     template< typename Vector > struct apply
278     {
279         typedef vector21<
280               typename Vector::item1, typename Vector::item2
281             , typename Vector::item3, typename Vector::item4
282             , typename Vector::item5, typename Vector::item6
283             , typename Vector::item7, typename Vector::item8
284             , typename Vector::item9, typename Vector::item10
285             , typename Vector::item11, typename Vector::item12
286             , typename Vector::item13, typename Vector::item14
287             , typename Vector::item15, typename Vector::item16
288             , typename Vector::item17, typename Vector::item18
289             , typename Vector::item19, typename Vector::item20
290             , typename Vector::item21
291             > type;
292     };
293 };
294
295 template<>
296 struct push_back_impl< aux::vector_tag<21> >
297 {
298     template< typename Vector, typename T > struct apply
299     {
300         typedef vector22<
301               typename Vector::item0, typename Vector::item1
302             , typename Vector::item2, typename Vector::item3
303             , typename Vector::item4, typename Vector::item5
304             , typename Vector::item6, typename Vector::item7
305             , typename Vector::item8, typename Vector::item9
306             , typename Vector::item10, typename Vector::item11
307             , typename Vector::item12, typename Vector::item13
308             , typename Vector::item14, typename Vector::item15
309             , typename Vector::item16, typename Vector::item17
310             , typename Vector::item18, typename Vector::item19
311             , typename Vector::item20
312               ,
313               T
314             > type;
315     };
316 };
317
318 template<>
319 struct pop_back_impl< aux::vector_tag<22> >
320 {
321     template< typename Vector > struct apply
322     {
323         typedef vector21<
324               typename Vector::item0, typename Vector::item1
325             , typename Vector::item2, typename Vector::item3
326             , typename Vector::item4, typename Vector::item5
327             , typename Vector::item6, typename Vector::item7
328             , typename Vector::item8, typename Vector::item9
329             , typename Vector::item10, typename Vector::item11
330             , typename Vector::item12, typename Vector::item13
331             , typename Vector::item14, typename Vector::item15
332             , typename Vector::item16, typename Vector::item17
333             , typename Vector::item18, typename Vector::item19
334             , typename Vector::item20
335             > type;
336     };
337 };
338
339 namespace aux {
340 template<> struct v_at_impl<22>
341 {
342     template< typename V_ > struct result_
343     {
344         typedef typename V_::item22 type;
345     };
346 };
347
348 }
349
350 template<>
351 struct at_impl< aux::vector_tag<22> >
352 {
353     template< typename V_, typename N > struct apply
354     {
355         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
356             ::template result_<V_>::type type;
357     };
358 };
359
360 template<>
361 struct front_impl< aux::vector_tag<22> >
362 {
363     template< typename Vector > struct apply
364     {
365         typedef typename Vector::item0 type;
366     };
367 };
368
369 template<>
370 struct back_impl< aux::vector_tag<22> >
371 {
372     template< typename Vector > struct apply
373     {
374         typedef typename Vector::back type;
375     };
376 };
377
378 template<>
379 struct empty_impl< aux::vector_tag<22> >
380 {
381     template< typename Vector > struct apply
382         : false_
383     {
384     };
385 };
386
387 template<>
388 struct size_impl< aux::vector_tag<22> >
389 {
390     template< typename Vector > struct apply
391         : long_<22>
392     {
393     };
394 };
395
396 template<>
397 struct O1_size_impl< aux::vector_tag<22> >
398     : size_impl< aux::vector_tag<22> >
399 {
400 };
401
402 template<>
403 struct clear_impl< aux::vector_tag<22> >
404 {
405     template< typename Vector > struct apply
406     {
407         typedef vector0<> type;
408     };
409 };
410
411 template<
412       typename T0, typename T1, typename T2, typename T3, typename T4
413     , typename T5, typename T6, typename T7, typename T8, typename T9
414     , typename T10, typename T11, typename T12, typename T13, typename T14
415     , typename T15, typename T16, typename T17, typename T18, typename T19
416     , typename T20, typename T21, typename T22
417     >
418 struct vector23
419 {
420     typedef aux::vector_tag<23> tag;
421     typedef vector23 type;
422     typedef T0 item0;
423     typedef T1 item1;
424     typedef T2 item2;
425     typedef T3 item3;
426     typedef T4 item4;
427     typedef T5 item5;
428     typedef T6 item6;
429     typedef T7 item7;
430     typedef T8 item8;
431     typedef T9 item9;
432     typedef T10 item10;
433     typedef T11 item11;
434     typedef T12 item12;
435     typedef T13 item13;
436     typedef T14 item14;
437     typedef T15 item15;
438     typedef T16 item16;
439     typedef T17 item17;
440     typedef T18 item18;
441     typedef T19 item19;
442     typedef T20 item20;
443     typedef T21 item21;
444     typedef T22 item22;
445     
446
447     typedef void_ item23;
448     typedef T22 back;
449     typedef v_iter< type,0 > begin;
450     typedef v_iter< type,23 > end;
451 };
452
453 template<>
454 struct push_front_impl< aux::vector_tag<22> >
455 {
456     template< typename Vector, typename T > struct apply
457     {
458         typedef vector23<
459               T
460               ,
461               typename Vector::item0, typename Vector::item1
462             , typename Vector::item2, typename Vector::item3
463             , typename Vector::item4, typename Vector::item5
464             , typename Vector::item6, typename Vector::item7
465             , typename Vector::item8, typename Vector::item9
466             , typename Vector::item10, typename Vector::item11
467             , typename Vector::item12, typename Vector::item13
468             , typename Vector::item14, typename Vector::item15
469             , typename Vector::item16, typename Vector::item17
470             , typename Vector::item18, typename Vector::item19
471             , typename Vector::item20, typename Vector::item21
472             > type;
473     };
474 };
475
476 template<>
477 struct pop_front_impl< aux::vector_tag<23> >
478 {
479     template< typename Vector > struct apply
480     {
481         typedef vector22<
482               typename Vector::item1, typename Vector::item2
483             , typename Vector::item3, typename Vector::item4
484             , typename Vector::item5, typename Vector::item6
485             , typename Vector::item7, typename Vector::item8
486             , typename Vector::item9, typename Vector::item10
487             , typename Vector::item11, typename Vector::item12
488             , typename Vector::item13, typename Vector::item14
489             , typename Vector::item15, typename Vector::item16
490             , typename Vector::item17, typename Vector::item18
491             , typename Vector::item19, typename Vector::item20
492             , typename Vector::item21, typename Vector::item22
493             > type;
494     };
495 };
496
497 template<>
498 struct push_back_impl< aux::vector_tag<22> >
499 {
500     template< typename Vector, typename T > struct apply
501     {
502         typedef vector23<
503               typename Vector::item0, typename Vector::item1
504             , typename Vector::item2, typename Vector::item3
505             , typename Vector::item4, typename Vector::item5
506             , typename Vector::item6, typename Vector::item7
507             , typename Vector::item8, typename Vector::item9
508             , typename Vector::item10, typename Vector::item11
509             , typename Vector::item12, typename Vector::item13
510             , typename Vector::item14, typename Vector::item15
511             , typename Vector::item16, typename Vector::item17
512             , typename Vector::item18, typename Vector::item19
513             , typename Vector::item20, typename Vector::item21
514               ,
515               T
516             > type;
517     };
518 };
519
520 template<>
521 struct pop_back_impl< aux::vector_tag<23> >
522 {
523     template< typename Vector > struct apply
524     {
525         typedef vector22<
526               typename Vector::item0, typename Vector::item1
527             , typename Vector::item2, typename Vector::item3
528             , typename Vector::item4, typename Vector::item5
529             , typename Vector::item6, typename Vector::item7
530             , typename Vector::item8, typename Vector::item9
531             , typename Vector::item10, typename Vector::item11
532             , typename Vector::item12, typename Vector::item13
533             , typename Vector::item14, typename Vector::item15
534             , typename Vector::item16, typename Vector::item17
535             , typename Vector::item18, typename Vector::item19
536             , typename Vector::item20, typename Vector::item21
537             > type;
538     };
539 };
540
541 namespace aux {
542 template<> struct v_at_impl<23>
543 {
544     template< typename V_ > struct result_
545     {
546         typedef typename V_::item23 type;
547     };
548 };
549
550 }
551
552 template<>
553 struct at_impl< aux::vector_tag<23> >
554 {
555     template< typename V_, typename N > struct apply
556     {
557         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
558             ::template result_<V_>::type type;
559     };
560 };
561
562 template<>
563 struct front_impl< aux::vector_tag<23> >
564 {
565     template< typename Vector > struct apply
566     {
567         typedef typename Vector::item0 type;
568     };
569 };
570
571 template<>
572 struct back_impl< aux::vector_tag<23> >
573 {
574     template< typename Vector > struct apply
575     {
576         typedef typename Vector::back type;
577     };
578 };
579
580 template<>
581 struct empty_impl< aux::vector_tag<23> >
582 {
583     template< typename Vector > struct apply
584         : false_
585     {
586     };
587 };
588
589 template<>
590 struct size_impl< aux::vector_tag<23> >
591 {
592     template< typename Vector > struct apply
593         : long_<23>
594     {
595     };
596 };
597
598 template<>
599 struct O1_size_impl< aux::vector_tag<23> >
600     : size_impl< aux::vector_tag<23> >
601 {
602 };
603
604 template<>
605 struct clear_impl< aux::vector_tag<23> >
606 {
607     template< typename Vector > struct apply
608     {
609         typedef vector0<> type;
610     };
611 };
612
613 template<
614       typename T0, typename T1, typename T2, typename T3, typename T4
615     , typename T5, typename T6, typename T7, typename T8, typename T9
616     , typename T10, typename T11, typename T12, typename T13, typename T14
617     , typename T15, typename T16, typename T17, typename T18, typename T19
618     , typename T20, typename T21, typename T22, typename T23
619     >
620 struct vector24
621 {
622     typedef aux::vector_tag<24> tag;
623     typedef vector24 type;
624     typedef T0 item0;
625     typedef T1 item1;
626     typedef T2 item2;
627     typedef T3 item3;
628     typedef T4 item4;
629     typedef T5 item5;
630     typedef T6 item6;
631     typedef T7 item7;
632     typedef T8 item8;
633     typedef T9 item9;
634     typedef T10 item10;
635     typedef T11 item11;
636     typedef T12 item12;
637     typedef T13 item13;
638     typedef T14 item14;
639     typedef T15 item15;
640     typedef T16 item16;
641     typedef T17 item17;
642     typedef T18 item18;
643     typedef T19 item19;
644     typedef T20 item20;
645     typedef T21 item21;
646     typedef T22 item22;
647     typedef T23 item23;
648     
649
650     typedef void_ item24;
651     typedef T23 back;
652     typedef v_iter< type,0 > begin;
653     typedef v_iter< type,24 > end;
654 };
655
656 template<>
657 struct push_front_impl< aux::vector_tag<23> >
658 {
659     template< typename Vector, typename T > struct apply
660     {
661         typedef vector24<
662               T
663               ,
664               typename Vector::item0, typename Vector::item1
665             , typename Vector::item2, typename Vector::item3
666             , typename Vector::item4, typename Vector::item5
667             , typename Vector::item6, typename Vector::item7
668             , typename Vector::item8, typename Vector::item9
669             , typename Vector::item10, typename Vector::item11
670             , typename Vector::item12, typename Vector::item13
671             , typename Vector::item14, typename Vector::item15
672             , typename Vector::item16, typename Vector::item17
673             , typename Vector::item18, typename Vector::item19
674             , typename Vector::item20, typename Vector::item21
675             , typename Vector::item22
676             > type;
677     };
678 };
679
680 template<>
681 struct pop_front_impl< aux::vector_tag<24> >
682 {
683     template< typename Vector > struct apply
684     {
685         typedef vector23<
686               typename Vector::item1, typename Vector::item2
687             , typename Vector::item3, typename Vector::item4
688             , typename Vector::item5, typename Vector::item6
689             , typename Vector::item7, typename Vector::item8
690             , typename Vector::item9, typename Vector::item10
691             , typename Vector::item11, typename Vector::item12
692             , typename Vector::item13, typename Vector::item14
693             , typename Vector::item15, typename Vector::item16
694             , typename Vector::item17, typename Vector::item18
695             , typename Vector::item19, typename Vector::item20
696             , typename Vector::item21, typename Vector::item22
697             , typename Vector::item23
698             > type;
699     };
700 };
701
702 template<>
703 struct push_back_impl< aux::vector_tag<23> >
704 {
705     template< typename Vector, typename T > struct apply
706     {
707         typedef vector24<
708               typename Vector::item0, typename Vector::item1
709             , typename Vector::item2, typename Vector::item3
710             , typename Vector::item4, typename Vector::item5
711             , typename Vector::item6, typename Vector::item7
712             , typename Vector::item8, typename Vector::item9
713             , typename Vector::item10, typename Vector::item11
714             , typename Vector::item12, typename Vector::item13
715             , typename Vector::item14, typename Vector::item15
716             , typename Vector::item16, typename Vector::item17
717             , typename Vector::item18, typename Vector::item19
718             , typename Vector::item20, typename Vector::item21
719             , typename Vector::item22
720               ,
721               T
722             > type;
723     };
724 };
725
726 template<>
727 struct pop_back_impl< aux::vector_tag<24> >
728 {
729     template< typename Vector > struct apply
730     {
731         typedef vector23<
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             , typename Vector::item14, typename Vector::item15
740             , typename Vector::item16, typename Vector::item17
741             , typename Vector::item18, typename Vector::item19
742             , typename Vector::item20, typename Vector::item21
743             , typename Vector::item22
744             > type;
745     };
746 };
747
748 namespace aux {
749 template<> struct v_at_impl<24>
750 {
751     template< typename V_ > struct result_
752     {
753         typedef typename V_::item24 type;
754     };
755 };
756
757 }
758
759 template<>
760 struct at_impl< aux::vector_tag<24> >
761 {
762     template< typename V_, typename N > struct apply
763     {
764         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
765             ::template result_<V_>::type type;
766     };
767 };
768
769 template<>
770 struct front_impl< aux::vector_tag<24> >
771 {
772     template< typename Vector > struct apply
773     {
774         typedef typename Vector::item0 type;
775     };
776 };
777
778 template<>
779 struct back_impl< aux::vector_tag<24> >
780 {
781     template< typename Vector > struct apply
782     {
783         typedef typename Vector::back type;
784     };
785 };
786
787 template<>
788 struct empty_impl< aux::vector_tag<24> >
789 {
790     template< typename Vector > struct apply
791         : false_
792     {
793     };
794 };
795
796 template<>
797 struct size_impl< aux::vector_tag<24> >
798 {
799     template< typename Vector > struct apply
800         : long_<24>
801     {
802     };
803 };
804
805 template<>
806 struct O1_size_impl< aux::vector_tag<24> >
807     : size_impl< aux::vector_tag<24> >
808 {
809 };
810
811 template<>
812 struct clear_impl< aux::vector_tag<24> >
813 {
814     template< typename Vector > struct apply
815     {
816         typedef vector0<> type;
817     };
818 };
819
820 template<
821       typename T0, typename T1, typename T2, typename T3, typename T4
822     , typename T5, typename T6, typename T7, typename T8, typename T9
823     , typename T10, typename T11, typename T12, typename T13, typename T14
824     , typename T15, typename T16, typename T17, typename T18, typename T19
825     , typename T20, typename T21, typename T22, typename T23, typename T24
826     >
827 struct vector25
828 {
829     typedef aux::vector_tag<25> tag;
830     typedef vector25 type;
831     typedef T0 item0;
832     typedef T1 item1;
833     typedef T2 item2;
834     typedef T3 item3;
835     typedef T4 item4;
836     typedef T5 item5;
837     typedef T6 item6;
838     typedef T7 item7;
839     typedef T8 item8;
840     typedef T9 item9;
841     typedef T10 item10;
842     typedef T11 item11;
843     typedef T12 item12;
844     typedef T13 item13;
845     typedef T14 item14;
846     typedef T15 item15;
847     typedef T16 item16;
848     typedef T17 item17;
849     typedef T18 item18;
850     typedef T19 item19;
851     typedef T20 item20;
852     typedef T21 item21;
853     typedef T22 item22;
854     typedef T23 item23;
855     typedef T24 item24;
856     
857
858     typedef void_ item25;
859     typedef T24 back;
860     typedef v_iter< type,0 > begin;
861     typedef v_iter< type,25 > end;
862 };
863
864 template<>
865 struct push_front_impl< aux::vector_tag<24> >
866 {
867     template< typename Vector, typename T > struct apply
868     {
869         typedef vector25<
870               T
871               ,
872               typename Vector::item0, typename Vector::item1
873             , typename Vector::item2, typename Vector::item3
874             , typename Vector::item4, typename Vector::item5
875             , typename Vector::item6, typename Vector::item7
876             , typename Vector::item8, typename Vector::item9
877             , typename Vector::item10, typename Vector::item11
878             , typename Vector::item12, typename Vector::item13
879             , typename Vector::item14, typename Vector::item15
880             , typename Vector::item16, typename Vector::item17
881             , typename Vector::item18, typename Vector::item19
882             , typename Vector::item20, typename Vector::item21
883             , typename Vector::item22, typename Vector::item23
884             > type;
885     };
886 };
887
888 template<>
889 struct pop_front_impl< aux::vector_tag<25> >
890 {
891     template< typename Vector > struct apply
892     {
893         typedef vector24<
894               typename Vector::item1, typename Vector::item2
895             , typename Vector::item3, typename Vector::item4
896             , typename Vector::item5, typename Vector::item6
897             , typename Vector::item7, typename Vector::item8
898             , typename Vector::item9, typename Vector::item10
899             , typename Vector::item11, typename Vector::item12
900             , typename Vector::item13, typename Vector::item14
901             , typename Vector::item15, typename Vector::item16
902             , typename Vector::item17, typename Vector::item18
903             , typename Vector::item19, typename Vector::item20
904             , typename Vector::item21, typename Vector::item22
905             , typename Vector::item23, typename Vector::item24
906             > type;
907     };
908 };
909
910 template<>
911 struct push_back_impl< aux::vector_tag<24> >
912 {
913     template< typename Vector, typename T > struct apply
914     {
915         typedef vector25<
916               typename Vector::item0, typename Vector::item1
917             , typename Vector::item2, typename Vector::item3
918             , typename Vector::item4, typename Vector::item5
919             , typename Vector::item6, typename Vector::item7
920             , typename Vector::item8, typename Vector::item9
921             , typename Vector::item10, typename Vector::item11
922             , typename Vector::item12, typename Vector::item13
923             , typename Vector::item14, typename Vector::item15
924             , typename Vector::item16, typename Vector::item17
925             , typename Vector::item18, typename Vector::item19
926             , typename Vector::item20, typename Vector::item21
927             , typename Vector::item22, typename Vector::item23
928               ,
929               T
930             > type;
931     };
932 };
933
934 template<>
935 struct pop_back_impl< aux::vector_tag<25> >
936 {
937     template< typename Vector > struct apply
938     {
939         typedef vector24<
940               typename Vector::item0, typename Vector::item1
941             , typename Vector::item2, typename Vector::item3
942             , typename Vector::item4, typename Vector::item5
943             , typename Vector::item6, typename Vector::item7
944             , typename Vector::item8, typename Vector::item9
945             , typename Vector::item10, typename Vector::item11
946             , typename Vector::item12, typename Vector::item13
947             , typename Vector::item14, typename Vector::item15
948             , typename Vector::item16, typename Vector::item17
949             , typename Vector::item18, typename Vector::item19
950             , typename Vector::item20, typename Vector::item21
951             , typename Vector::item22, typename Vector::item23
952             > type;
953     };
954 };
955
956 namespace aux {
957 template<> struct v_at_impl<25>
958 {
959     template< typename V_ > struct result_
960     {
961         typedef typename V_::item25 type;
962     };
963 };
964
965 }
966
967 template<>
968 struct at_impl< aux::vector_tag<25> >
969 {
970     template< typename V_, typename N > struct apply
971     {
972         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
973             ::template result_<V_>::type type;
974     };
975 };
976
977 template<>
978 struct front_impl< aux::vector_tag<25> >
979 {
980     template< typename Vector > struct apply
981     {
982         typedef typename Vector::item0 type;
983     };
984 };
985
986 template<>
987 struct back_impl< aux::vector_tag<25> >
988 {
989     template< typename Vector > struct apply
990     {
991         typedef typename Vector::back type;
992     };
993 };
994
995 template<>
996 struct empty_impl< aux::vector_tag<25> >
997 {
998     template< typename Vector > struct apply
999         : false_
1000     {
1001     };
1002 };
1003
1004 template<>
1005 struct size_impl< aux::vector_tag<25> >
1006 {
1007     template< typename Vector > struct apply
1008         : long_<25>
1009     {
1010     };
1011 };
1012
1013 template<>
1014 struct O1_size_impl< aux::vector_tag<25> >
1015     : size_impl< aux::vector_tag<25> >
1016 {
1017 };
1018
1019 template<>
1020 struct clear_impl< aux::vector_tag<25> >
1021 {
1022     template< typename Vector > struct apply
1023     {
1024         typedef vector0<> type;
1025     };
1026 };
1027
1028 template<
1029       typename T0, typename T1, typename T2, typename T3, typename T4
1030     , typename T5, typename T6, typename T7, typename T8, typename T9
1031     , typename T10, typename T11, typename T12, typename T13, typename T14
1032     , typename T15, typename T16, typename T17, typename T18, typename T19
1033     , typename T20, typename T21, typename T22, typename T23, typename T24
1034     , typename T25
1035     >
1036 struct vector26
1037 {
1038     typedef aux::vector_tag<26> tag;
1039     typedef vector26 type;
1040     typedef T0 item0;
1041     typedef T1 item1;
1042     typedef T2 item2;
1043     typedef T3 item3;
1044     typedef T4 item4;
1045     typedef T5 item5;
1046     typedef T6 item6;
1047     typedef T7 item7;
1048     typedef T8 item8;
1049     typedef T9 item9;
1050     typedef T10 item10;
1051     typedef T11 item11;
1052     typedef T12 item12;
1053     typedef T13 item13;
1054     typedef T14 item14;
1055     typedef T15 item15;
1056     typedef T16 item16;
1057     typedef T17 item17;
1058     typedef T18 item18;
1059     typedef T19 item19;
1060     typedef T20 item20;
1061     typedef T21 item21;
1062     typedef T22 item22;
1063     typedef T23 item23;
1064     typedef T24 item24;
1065     typedef T25 item25;
1066     
1067
1068     typedef void_ item26;
1069     typedef T25 back;
1070     typedef v_iter< type,0 > begin;
1071     typedef v_iter< type,26 > end;
1072 };
1073
1074 template<>
1075 struct push_front_impl< aux::vector_tag<25> >
1076 {
1077     template< typename Vector, typename T > struct apply
1078     {
1079         typedef vector26<
1080               T
1081               ,
1082               typename Vector::item0, typename Vector::item1
1083             , typename Vector::item2, typename Vector::item3
1084             , typename Vector::item4, typename Vector::item5
1085             , typename Vector::item6, typename Vector::item7
1086             , typename Vector::item8, typename Vector::item9
1087             , typename Vector::item10, typename Vector::item11
1088             , typename Vector::item12, typename Vector::item13
1089             , typename Vector::item14, typename Vector::item15
1090             , typename Vector::item16, typename Vector::item17
1091             , typename Vector::item18, typename Vector::item19
1092             , typename Vector::item20, typename Vector::item21
1093             , typename Vector::item22, typename Vector::item23
1094             , typename Vector::item24
1095             > type;
1096     };
1097 };
1098
1099 template<>
1100 struct pop_front_impl< aux::vector_tag<26> >
1101 {
1102     template< typename Vector > struct apply
1103     {
1104         typedef vector25<
1105               typename Vector::item1, typename Vector::item2
1106             , typename Vector::item3, typename Vector::item4
1107             , typename Vector::item5, typename Vector::item6
1108             , typename Vector::item7, typename Vector::item8
1109             , typename Vector::item9, typename Vector::item10
1110             , typename Vector::item11, typename Vector::item12
1111             , typename Vector::item13, typename Vector::item14
1112             , typename Vector::item15, typename Vector::item16
1113             , typename Vector::item17, typename Vector::item18
1114             , typename Vector::item19, typename Vector::item20
1115             , typename Vector::item21, typename Vector::item22
1116             , typename Vector::item23, typename Vector::item24
1117             , typename Vector::item25
1118             > type;
1119     };
1120 };
1121
1122 template<>
1123 struct push_back_impl< aux::vector_tag<25> >
1124 {
1125     template< typename Vector, typename T > struct apply
1126     {
1127         typedef vector26<
1128               typename Vector::item0, typename Vector::item1
1129             , typename Vector::item2, typename Vector::item3
1130             , typename Vector::item4, typename Vector::item5
1131             , typename Vector::item6, typename Vector::item7
1132             , typename Vector::item8, typename Vector::item9
1133             , typename Vector::item10, typename Vector::item11
1134             , typename Vector::item12, typename Vector::item13
1135             , typename Vector::item14, typename Vector::item15
1136             , typename Vector::item16, typename Vector::item17
1137             , typename Vector::item18, typename Vector::item19
1138             , typename Vector::item20, typename Vector::item21
1139             , typename Vector::item22, typename Vector::item23
1140             , typename Vector::item24
1141               ,
1142               T
1143             > type;
1144     };
1145 };
1146
1147 template<>
1148 struct pop_back_impl< aux::vector_tag<26> >
1149 {
1150     template< typename Vector > struct apply
1151     {
1152         typedef vector25<
1153               typename Vector::item0, typename Vector::item1
1154             , typename Vector::item2, typename Vector::item3
1155             , typename Vector::item4, typename Vector::item5
1156             , typename Vector::item6, typename Vector::item7
1157             , typename Vector::item8, typename Vector::item9
1158             , typename Vector::item10, typename Vector::item11
1159             , typename Vector::item12, typename Vector::item13
1160             , typename Vector::item14, typename Vector::item15
1161             , typename Vector::item16, typename Vector::item17
1162             , typename Vector::item18, typename Vector::item19
1163             , typename Vector::item20, typename Vector::item21
1164             , typename Vector::item22, typename Vector::item23
1165             , typename Vector::item24
1166             > type;
1167     };
1168 };
1169
1170 namespace aux {
1171 template<> struct v_at_impl<26>
1172 {
1173     template< typename V_ > struct result_
1174     {
1175         typedef typename V_::item26 type;
1176     };
1177 };
1178
1179 }
1180
1181 template<>
1182 struct at_impl< aux::vector_tag<26> >
1183 {
1184     template< typename V_, typename N > struct apply
1185     {
1186         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1187             ::template result_<V_>::type type;
1188     };
1189 };
1190
1191 template<>
1192 struct front_impl< aux::vector_tag<26> >
1193 {
1194     template< typename Vector > struct apply
1195     {
1196         typedef typename Vector::item0 type;
1197     };
1198 };
1199
1200 template<>
1201 struct back_impl< aux::vector_tag<26> >
1202 {
1203     template< typename Vector > struct apply
1204     {
1205         typedef typename Vector::back type;
1206     };
1207 };
1208
1209 template<>
1210 struct empty_impl< aux::vector_tag<26> >
1211 {
1212     template< typename Vector > struct apply
1213         : false_
1214     {
1215     };
1216 };
1217
1218 template<>
1219 struct size_impl< aux::vector_tag<26> >
1220 {
1221     template< typename Vector > struct apply
1222         : long_<26>
1223     {
1224     };
1225 };
1226
1227 template<>
1228 struct O1_size_impl< aux::vector_tag<26> >
1229     : size_impl< aux::vector_tag<26> >
1230 {
1231 };
1232
1233 template<>
1234 struct clear_impl< aux::vector_tag<26> >
1235 {
1236     template< typename Vector > struct apply
1237     {
1238         typedef vector0<> type;
1239     };
1240 };
1241
1242 template<
1243       typename T0, typename T1, typename T2, typename T3, typename T4
1244     , typename T5, typename T6, typename T7, typename T8, typename T9
1245     , typename T10, typename T11, typename T12, typename T13, typename T14
1246     , typename T15, typename T16, typename T17, typename T18, typename T19
1247     , typename T20, typename T21, typename T22, typename T23, typename T24
1248     , typename T25, typename T26
1249     >
1250 struct vector27
1251 {
1252     typedef aux::vector_tag<27> tag;
1253     typedef vector27 type;
1254     typedef T0 item0;
1255     typedef T1 item1;
1256     typedef T2 item2;
1257     typedef T3 item3;
1258     typedef T4 item4;
1259     typedef T5 item5;
1260     typedef T6 item6;
1261     typedef T7 item7;
1262     typedef T8 item8;
1263     typedef T9 item9;
1264     typedef T10 item10;
1265     typedef T11 item11;
1266     typedef T12 item12;
1267     typedef T13 item13;
1268     typedef T14 item14;
1269     typedef T15 item15;
1270     typedef T16 item16;
1271     typedef T17 item17;
1272     typedef T18 item18;
1273     typedef T19 item19;
1274     typedef T20 item20;
1275     typedef T21 item21;
1276     typedef T22 item22;
1277     typedef T23 item23;
1278     typedef T24 item24;
1279     typedef T25 item25;
1280     typedef T26 item26;
1281     
1282
1283     typedef void_ item27;
1284     typedef T26 back;
1285     typedef v_iter< type,0 > begin;
1286     typedef v_iter< type,27 > end;
1287 };
1288
1289 template<>
1290 struct push_front_impl< aux::vector_tag<26> >
1291 {
1292     template< typename Vector, typename T > struct apply
1293     {
1294         typedef vector27<
1295               T
1296               ,
1297               typename Vector::item0, typename Vector::item1
1298             , typename Vector::item2, typename Vector::item3
1299             , typename Vector::item4, typename Vector::item5
1300             , typename Vector::item6, typename Vector::item7
1301             , typename Vector::item8, typename Vector::item9
1302             , typename Vector::item10, typename Vector::item11
1303             , typename Vector::item12, typename Vector::item13
1304             , typename Vector::item14, typename Vector::item15
1305             , typename Vector::item16, typename Vector::item17
1306             , typename Vector::item18, typename Vector::item19
1307             , typename Vector::item20, typename Vector::item21
1308             , typename Vector::item22, typename Vector::item23
1309             , typename Vector::item24, typename Vector::item25
1310             > type;
1311     };
1312 };
1313
1314 template<>
1315 struct pop_front_impl< aux::vector_tag<27> >
1316 {
1317     template< typename Vector > struct apply
1318     {
1319         typedef vector26<
1320               typename Vector::item1, typename Vector::item2
1321             , typename Vector::item3, typename Vector::item4
1322             , typename Vector::item5, typename Vector::item6
1323             , typename Vector::item7, typename Vector::item8
1324             , typename Vector::item9, typename Vector::item10
1325             , typename Vector::item11, typename Vector::item12
1326             , typename Vector::item13, typename Vector::item14
1327             , typename Vector::item15, typename Vector::item16
1328             , typename Vector::item17, typename Vector::item18
1329             , typename Vector::item19, typename Vector::item20
1330             , typename Vector::item21, typename Vector::item22
1331             , typename Vector::item23, typename Vector::item24
1332             , typename Vector::item25, typename Vector::item26
1333             > type;
1334     };
1335 };
1336
1337 template<>
1338 struct push_back_impl< aux::vector_tag<26> >
1339 {
1340     template< typename Vector, typename T > struct apply
1341     {
1342         typedef vector27<
1343               typename Vector::item0, typename Vector::item1
1344             , typename Vector::item2, typename Vector::item3
1345             , typename Vector::item4, typename Vector::item5
1346             , typename Vector::item6, typename Vector::item7
1347             , typename Vector::item8, typename Vector::item9
1348             , typename Vector::item10, typename Vector::item11
1349             , typename Vector::item12, typename Vector::item13
1350             , typename Vector::item14, typename Vector::item15
1351             , typename Vector::item16, typename Vector::item17
1352             , typename Vector::item18, typename Vector::item19
1353             , typename Vector::item20, typename Vector::item21
1354             , typename Vector::item22, typename Vector::item23
1355             , typename Vector::item24, typename Vector::item25
1356               ,
1357               T
1358             > type;
1359     };
1360 };
1361
1362 template<>
1363 struct pop_back_impl< aux::vector_tag<27> >
1364 {
1365     template< typename Vector > struct apply
1366     {
1367         typedef vector26<
1368               typename Vector::item0, typename Vector::item1
1369             , typename Vector::item2, typename Vector::item3
1370             , typename Vector::item4, typename Vector::item5
1371             , typename Vector::item6, typename Vector::item7
1372             , typename Vector::item8, typename Vector::item9
1373             , typename Vector::item10, typename Vector::item11
1374             , typename Vector::item12, typename Vector::item13
1375             , typename Vector::item14, typename Vector::item15
1376             , typename Vector::item16, typename Vector::item17
1377             , typename Vector::item18, typename Vector::item19
1378             , typename Vector::item20, typename Vector::item21
1379             , typename Vector::item22, typename Vector::item23
1380             , typename Vector::item24, typename Vector::item25
1381             > type;
1382     };
1383 };
1384
1385 namespace aux {
1386 template<> struct v_at_impl<27>
1387 {
1388     template< typename V_ > struct result_
1389     {
1390         typedef typename V_::item27 type;
1391     };
1392 };
1393
1394 }
1395
1396 template<>
1397 struct at_impl< aux::vector_tag<27> >
1398 {
1399     template< typename V_, typename N > struct apply
1400     {
1401         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1402             ::template result_<V_>::type type;
1403     };
1404 };
1405
1406 template<>
1407 struct front_impl< aux::vector_tag<27> >
1408 {
1409     template< typename Vector > struct apply
1410     {
1411         typedef typename Vector::item0 type;
1412     };
1413 };
1414
1415 template<>
1416 struct back_impl< aux::vector_tag<27> >
1417 {
1418     template< typename Vector > struct apply
1419     {
1420         typedef typename Vector::back type;
1421     };
1422 };
1423
1424 template<>
1425 struct empty_impl< aux::vector_tag<27> >
1426 {
1427     template< typename Vector > struct apply
1428         : false_
1429     {
1430     };
1431 };
1432
1433 template<>
1434 struct size_impl< aux::vector_tag<27> >
1435 {
1436     template< typename Vector > struct apply
1437         : long_<27>
1438     {
1439     };
1440 };
1441
1442 template<>
1443 struct O1_size_impl< aux::vector_tag<27> >
1444     : size_impl< aux::vector_tag<27> >
1445 {
1446 };
1447
1448 template<>
1449 struct clear_impl< aux::vector_tag<27> >
1450 {
1451     template< typename Vector > struct apply
1452     {
1453         typedef vector0<> type;
1454     };
1455 };
1456
1457 template<
1458       typename T0, typename T1, typename T2, typename T3, typename T4
1459     , typename T5, typename T6, typename T7, typename T8, typename T9
1460     , typename T10, typename T11, typename T12, typename T13, typename T14
1461     , typename T15, typename T16, typename T17, typename T18, typename T19
1462     , typename T20, typename T21, typename T22, typename T23, typename T24
1463     , typename T25, typename T26, typename T27
1464     >
1465 struct vector28
1466 {
1467     typedef aux::vector_tag<28> tag;
1468     typedef vector28 type;
1469     typedef T0 item0;
1470     typedef T1 item1;
1471     typedef T2 item2;
1472     typedef T3 item3;
1473     typedef T4 item4;
1474     typedef T5 item5;
1475     typedef T6 item6;
1476     typedef T7 item7;
1477     typedef T8 item8;
1478     typedef T9 item9;
1479     typedef T10 item10;
1480     typedef T11 item11;
1481     typedef T12 item12;
1482     typedef T13 item13;
1483     typedef T14 item14;
1484     typedef T15 item15;
1485     typedef T16 item16;
1486     typedef T17 item17;
1487     typedef T18 item18;
1488     typedef T19 item19;
1489     typedef T20 item20;
1490     typedef T21 item21;
1491     typedef T22 item22;
1492     typedef T23 item23;
1493     typedef T24 item24;
1494     typedef T25 item25;
1495     typedef T26 item26;
1496     typedef T27 item27;
1497     
1498
1499     typedef void_ item28;
1500     typedef T27 back;
1501     typedef v_iter< type,0 > begin;
1502     typedef v_iter< type,28 > end;
1503 };
1504
1505 template<>
1506 struct push_front_impl< aux::vector_tag<27> >
1507 {
1508     template< typename Vector, typename T > struct apply
1509     {
1510         typedef vector28<
1511               T
1512               ,
1513               typename Vector::item0, typename Vector::item1
1514             , typename Vector::item2, typename Vector::item3
1515             , typename Vector::item4, typename Vector::item5
1516             , typename Vector::item6, typename Vector::item7
1517             , typename Vector::item8, typename Vector::item9
1518             , typename Vector::item10, typename Vector::item11
1519             , typename Vector::item12, typename Vector::item13
1520             , typename Vector::item14, typename Vector::item15
1521             , typename Vector::item16, typename Vector::item17
1522             , typename Vector::item18, typename Vector::item19
1523             , typename Vector::item20, typename Vector::item21
1524             , typename Vector::item22, typename Vector::item23
1525             , typename Vector::item24, typename Vector::item25
1526             , typename Vector::item26
1527             > type;
1528     };
1529 };
1530
1531 template<>
1532 struct pop_front_impl< aux::vector_tag<28> >
1533 {
1534     template< typename Vector > struct apply
1535     {
1536         typedef vector27<
1537               typename Vector::item1, typename Vector::item2
1538             , typename Vector::item3, typename Vector::item4
1539             , typename Vector::item5, typename Vector::item6
1540             , typename Vector::item7, typename Vector::item8
1541             , typename Vector::item9, typename Vector::item10
1542             , typename Vector::item11, typename Vector::item12
1543             , typename Vector::item13, typename Vector::item14
1544             , typename Vector::item15, typename Vector::item16
1545             , typename Vector::item17, typename Vector::item18
1546             , typename Vector::item19, typename Vector::item20
1547             , typename Vector::item21, typename Vector::item22
1548             , typename Vector::item23, typename Vector::item24
1549             , typename Vector::item25, typename Vector::item26
1550             , typename Vector::item27
1551             > type;
1552     };
1553 };
1554
1555 template<>
1556 struct push_back_impl< aux::vector_tag<27> >
1557 {
1558     template< typename Vector, typename T > struct apply
1559     {
1560         typedef vector28<
1561               typename Vector::item0, typename Vector::item1
1562             , typename Vector::item2, typename Vector::item3
1563             , typename Vector::item4, typename Vector::item5
1564             , typename Vector::item6, typename Vector::item7
1565             , typename Vector::item8, typename Vector::item9
1566             , typename Vector::item10, typename Vector::item11
1567             , typename Vector::item12, typename Vector::item13
1568             , typename Vector::item14, typename Vector::item15
1569             , typename Vector::item16, typename Vector::item17
1570             , typename Vector::item18, typename Vector::item19
1571             , typename Vector::item20, typename Vector::item21
1572             , typename Vector::item22, typename Vector::item23
1573             , typename Vector::item24, typename Vector::item25
1574             , typename Vector::item26
1575               ,
1576               T
1577             > type;
1578     };
1579 };
1580
1581 template<>
1582 struct pop_back_impl< aux::vector_tag<28> >
1583 {
1584     template< typename Vector > struct apply
1585     {
1586         typedef vector27<
1587               typename Vector::item0, typename Vector::item1
1588             , typename Vector::item2, typename Vector::item3
1589             , typename Vector::item4, typename Vector::item5
1590             , typename Vector::item6, typename Vector::item7
1591             , typename Vector::item8, typename Vector::item9
1592             , typename Vector::item10, typename Vector::item11
1593             , typename Vector::item12, typename Vector::item13
1594             , typename Vector::item14, typename Vector::item15
1595             , typename Vector::item16, typename Vector::item17
1596             , typename Vector::item18, typename Vector::item19
1597             , typename Vector::item20, typename Vector::item21
1598             , typename Vector::item22, typename Vector::item23
1599             , typename Vector::item24, typename Vector::item25
1600             , typename Vector::item26
1601             > type;
1602     };
1603 };
1604
1605 namespace aux {
1606 template<> struct v_at_impl<28>
1607 {
1608     template< typename V_ > struct result_
1609     {
1610         typedef typename V_::item28 type;
1611     };
1612 };
1613
1614 }
1615
1616 template<>
1617 struct at_impl< aux::vector_tag<28> >
1618 {
1619     template< typename V_, typename N > struct apply
1620     {
1621         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1622             ::template result_<V_>::type type;
1623     };
1624 };
1625
1626 template<>
1627 struct front_impl< aux::vector_tag<28> >
1628 {
1629     template< typename Vector > struct apply
1630     {
1631         typedef typename Vector::item0 type;
1632     };
1633 };
1634
1635 template<>
1636 struct back_impl< aux::vector_tag<28> >
1637 {
1638     template< typename Vector > struct apply
1639     {
1640         typedef typename Vector::back type;
1641     };
1642 };
1643
1644 template<>
1645 struct empty_impl< aux::vector_tag<28> >
1646 {
1647     template< typename Vector > struct apply
1648         : false_
1649     {
1650     };
1651 };
1652
1653 template<>
1654 struct size_impl< aux::vector_tag<28> >
1655 {
1656     template< typename Vector > struct apply
1657         : long_<28>
1658     {
1659     };
1660 };
1661
1662 template<>
1663 struct O1_size_impl< aux::vector_tag<28> >
1664     : size_impl< aux::vector_tag<28> >
1665 {
1666 };
1667
1668 template<>
1669 struct clear_impl< aux::vector_tag<28> >
1670 {
1671     template< typename Vector > struct apply
1672     {
1673         typedef vector0<> type;
1674     };
1675 };
1676
1677 template<
1678       typename T0, typename T1, typename T2, typename T3, typename T4
1679     , typename T5, typename T6, typename T7, typename T8, typename T9
1680     , typename T10, typename T11, typename T12, typename T13, typename T14
1681     , typename T15, typename T16, typename T17, typename T18, typename T19
1682     , typename T20, typename T21, typename T22, typename T23, typename T24
1683     , typename T25, typename T26, typename T27, typename T28
1684     >
1685 struct vector29
1686 {
1687     typedef aux::vector_tag<29> tag;
1688     typedef vector29 type;
1689     typedef T0 item0;
1690     typedef T1 item1;
1691     typedef T2 item2;
1692     typedef T3 item3;
1693     typedef T4 item4;
1694     typedef T5 item5;
1695     typedef T6 item6;
1696     typedef T7 item7;
1697     typedef T8 item8;
1698     typedef T9 item9;
1699     typedef T10 item10;
1700     typedef T11 item11;
1701     typedef T12 item12;
1702     typedef T13 item13;
1703     typedef T14 item14;
1704     typedef T15 item15;
1705     typedef T16 item16;
1706     typedef T17 item17;
1707     typedef T18 item18;
1708     typedef T19 item19;
1709     typedef T20 item20;
1710     typedef T21 item21;
1711     typedef T22 item22;
1712     typedef T23 item23;
1713     typedef T24 item24;
1714     typedef T25 item25;
1715     typedef T26 item26;
1716     typedef T27 item27;
1717     typedef T28 item28;
1718     
1719
1720     typedef void_ item29;
1721     typedef T28 back;
1722     typedef v_iter< type,0 > begin;
1723     typedef v_iter< type,29 > end;
1724 };
1725
1726 template<>
1727 struct push_front_impl< aux::vector_tag<28> >
1728 {
1729     template< typename Vector, typename T > struct apply
1730     {
1731         typedef vector29<
1732               T
1733               ,
1734               typename Vector::item0, typename Vector::item1
1735             , typename Vector::item2, typename Vector::item3
1736             , typename Vector::item4, typename Vector::item5
1737             , typename Vector::item6, typename Vector::item7
1738             , typename Vector::item8, typename Vector::item9
1739             , typename Vector::item10, typename Vector::item11
1740             , typename Vector::item12, typename Vector::item13
1741             , typename Vector::item14, typename Vector::item15
1742             , typename Vector::item16, typename Vector::item17
1743             , typename Vector::item18, typename Vector::item19
1744             , typename Vector::item20, typename Vector::item21
1745             , typename Vector::item22, typename Vector::item23
1746             , typename Vector::item24, typename Vector::item25
1747             , typename Vector::item26, typename Vector::item27
1748             > type;
1749     };
1750 };
1751
1752 template<>
1753 struct pop_front_impl< aux::vector_tag<29> >
1754 {
1755     template< typename Vector > struct apply
1756     {
1757         typedef vector28<
1758               typename Vector::item1, typename Vector::item2
1759             , typename Vector::item3, typename Vector::item4
1760             , typename Vector::item5, typename Vector::item6
1761             , typename Vector::item7, typename Vector::item8
1762             , typename Vector::item9, typename Vector::item10
1763             , typename Vector::item11, typename Vector::item12
1764             , typename Vector::item13, typename Vector::item14
1765             , typename Vector::item15, typename Vector::item16
1766             , typename Vector::item17, typename Vector::item18
1767             , typename Vector::item19, typename Vector::item20
1768             , typename Vector::item21, typename Vector::item22
1769             , typename Vector::item23, typename Vector::item24
1770             , typename Vector::item25, typename Vector::item26
1771             , typename Vector::item27, typename Vector::item28
1772             > type;
1773     };
1774 };
1775
1776 template<>
1777 struct push_back_impl< aux::vector_tag<28> >
1778 {
1779     template< typename Vector, typename T > struct apply
1780     {
1781         typedef vector29<
1782               typename Vector::item0, typename Vector::item1
1783             , typename Vector::item2, typename Vector::item3
1784             , typename Vector::item4, typename Vector::item5
1785             , typename Vector::item6, typename Vector::item7
1786             , typename Vector::item8, typename Vector::item9
1787             , typename Vector::item10, typename Vector::item11
1788             , typename Vector::item12, typename Vector::item13
1789             , typename Vector::item14, typename Vector::item15
1790             , typename Vector::item16, typename Vector::item17
1791             , typename Vector::item18, typename Vector::item19
1792             , typename Vector::item20, typename Vector::item21
1793             , typename Vector::item22, typename Vector::item23
1794             , typename Vector::item24, typename Vector::item25
1795             , typename Vector::item26, typename Vector::item27
1796               ,
1797               T
1798             > type;
1799     };
1800 };
1801
1802 template<>
1803 struct pop_back_impl< aux::vector_tag<29> >
1804 {
1805     template< typename Vector > struct apply
1806     {
1807         typedef vector28<
1808               typename Vector::item0, typename Vector::item1
1809             , typename Vector::item2, typename Vector::item3
1810             , typename Vector::item4, typename Vector::item5
1811             , typename Vector::item6, typename Vector::item7
1812             , typename Vector::item8, typename Vector::item9
1813             , typename Vector::item10, typename Vector::item11
1814             , typename Vector::item12, typename Vector::item13
1815             , typename Vector::item14, typename Vector::item15
1816             , typename Vector::item16, typename Vector::item17
1817             , typename Vector::item18, typename Vector::item19
1818             , typename Vector::item20, typename Vector::item21
1819             , typename Vector::item22, typename Vector::item23
1820             , typename Vector::item24, typename Vector::item25
1821             , typename Vector::item26, typename Vector::item27
1822             > type;
1823     };
1824 };
1825
1826 namespace aux {
1827 template<> struct v_at_impl<29>
1828 {
1829     template< typename V_ > struct result_
1830     {
1831         typedef typename V_::item29 type;
1832     };
1833 };
1834
1835 }
1836
1837 template<>
1838 struct at_impl< aux::vector_tag<29> >
1839 {
1840     template< typename V_, typename N > struct apply
1841     {
1842         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1843             ::template result_<V_>::type type;
1844     };
1845 };
1846
1847 template<>
1848 struct front_impl< aux::vector_tag<29> >
1849 {
1850     template< typename Vector > struct apply
1851     {
1852         typedef typename Vector::item0 type;
1853     };
1854 };
1855
1856 template<>
1857 struct back_impl< aux::vector_tag<29> >
1858 {
1859     template< typename Vector > struct apply
1860     {
1861         typedef typename Vector::back type;
1862     };
1863 };
1864
1865 template<>
1866 struct empty_impl< aux::vector_tag<29> >
1867 {
1868     template< typename Vector > struct apply
1869         : false_
1870     {
1871     };
1872 };
1873
1874 template<>
1875 struct size_impl< aux::vector_tag<29> >
1876 {
1877     template< typename Vector > struct apply
1878         : long_<29>
1879     {
1880     };
1881 };
1882
1883 template<>
1884 struct O1_size_impl< aux::vector_tag<29> >
1885     : size_impl< aux::vector_tag<29> >
1886 {
1887 };
1888
1889 template<>
1890 struct clear_impl< aux::vector_tag<29> >
1891 {
1892     template< typename Vector > struct apply
1893     {
1894         typedef vector0<> type;
1895     };
1896 };
1897
1898 template<
1899       typename T0, typename T1, typename T2, typename T3, typename T4
1900     , typename T5, typename T6, typename T7, typename T8, typename T9
1901     , typename T10, typename T11, typename T12, typename T13, typename T14
1902     , typename T15, typename T16, typename T17, typename T18, typename T19
1903     , typename T20, typename T21, typename T22, typename T23, typename T24
1904     , typename T25, typename T26, typename T27, typename T28, typename T29
1905     >
1906 struct vector30
1907 {
1908     typedef aux::vector_tag<30> tag;
1909     typedef vector30 type;
1910     typedef T0 item0;
1911     typedef T1 item1;
1912     typedef T2 item2;
1913     typedef T3 item3;
1914     typedef T4 item4;
1915     typedef T5 item5;
1916     typedef T6 item6;
1917     typedef T7 item7;
1918     typedef T8 item8;
1919     typedef T9 item9;
1920     typedef T10 item10;
1921     typedef T11 item11;
1922     typedef T12 item12;
1923     typedef T13 item13;
1924     typedef T14 item14;
1925     typedef T15 item15;
1926     typedef T16 item16;
1927     typedef T17 item17;
1928     typedef T18 item18;
1929     typedef T19 item19;
1930     typedef T20 item20;
1931     typedef T21 item21;
1932     typedef T22 item22;
1933     typedef T23 item23;
1934     typedef T24 item24;
1935     typedef T25 item25;
1936     typedef T26 item26;
1937     typedef T27 item27;
1938     typedef T28 item28;
1939     typedef T29 item29;
1940     
1941
1942     typedef void_ item30;
1943     typedef T29 back;
1944     typedef v_iter< type,0 > begin;
1945     typedef v_iter< type,30 > end;
1946 };
1947
1948 template<>
1949 struct push_front_impl< aux::vector_tag<29> >
1950 {
1951     template< typename Vector, typename T > struct apply
1952     {
1953         typedef vector30<
1954               T
1955               ,
1956               typename Vector::item0, typename Vector::item1
1957             , typename Vector::item2, typename Vector::item3
1958             , typename Vector::item4, typename Vector::item5
1959             , typename Vector::item6, typename Vector::item7
1960             , typename Vector::item8, typename Vector::item9
1961             , typename Vector::item10, typename Vector::item11
1962             , typename Vector::item12, typename Vector::item13
1963             , typename Vector::item14, typename Vector::item15
1964             , typename Vector::item16, typename Vector::item17
1965             , typename Vector::item18, typename Vector::item19
1966             , typename Vector::item20, typename Vector::item21
1967             , typename Vector::item22, typename Vector::item23
1968             , typename Vector::item24, typename Vector::item25
1969             , typename Vector::item26, typename Vector::item27
1970             , typename Vector::item28
1971             > type;
1972     };
1973 };
1974
1975 template<>
1976 struct pop_front_impl< aux::vector_tag<30> >
1977 {
1978     template< typename Vector > struct apply
1979     {
1980         typedef vector29<
1981               typename Vector::item1, typename Vector::item2
1982             , typename Vector::item3, typename Vector::item4
1983             , typename Vector::item5, typename Vector::item6
1984             , typename Vector::item7, typename Vector::item8
1985             , typename Vector::item9, typename Vector::item10
1986             , typename Vector::item11, typename Vector::item12
1987             , typename Vector::item13, typename Vector::item14
1988             , typename Vector::item15, typename Vector::item16
1989             , typename Vector::item17, typename Vector::item18
1990             , typename Vector::item19, typename Vector::item20
1991             , typename Vector::item21, typename Vector::item22
1992             , typename Vector::item23, typename Vector::item24
1993             , typename Vector::item25, typename Vector::item26
1994             , typename Vector::item27, typename Vector::item28
1995             , typename Vector::item29
1996             > type;
1997     };
1998 };
1999
2000 template<>
2001 struct push_back_impl< aux::vector_tag<29> >
2002 {
2003     template< typename Vector, typename T > struct apply
2004     {
2005         typedef vector30<
2006               typename Vector::item0, typename Vector::item1
2007             , typename Vector::item2, typename Vector::item3
2008             , typename Vector::item4, typename Vector::item5
2009             , typename Vector::item6, typename Vector::item7
2010             , typename Vector::item8, typename Vector::item9
2011             , typename Vector::item10, typename Vector::item11
2012             , typename Vector::item12, typename Vector::item13
2013             , typename Vector::item14, typename Vector::item15
2014             , typename Vector::item16, typename Vector::item17
2015             , typename Vector::item18, typename Vector::item19
2016             , typename Vector::item20, typename Vector::item21
2017             , typename Vector::item22, typename Vector::item23
2018             , typename Vector::item24, typename Vector::item25
2019             , typename Vector::item26, typename Vector::item27
2020             , typename Vector::item28
2021               ,
2022               T
2023             > type;
2024     };
2025 };
2026
2027 template<>
2028 struct pop_back_impl< aux::vector_tag<30> >
2029 {
2030     template< typename Vector > struct apply
2031     {
2032         typedef vector29<
2033               typename Vector::item0, typename Vector::item1
2034             , typename Vector::item2, typename Vector::item3
2035             , typename Vector::item4, typename Vector::item5
2036             , typename Vector::item6, typename Vector::item7
2037             , typename Vector::item8, typename Vector::item9
2038             , typename Vector::item10, typename Vector::item11
2039             , typename Vector::item12, typename Vector::item13
2040             , typename Vector::item14, typename Vector::item15
2041             , typename Vector::item16, typename Vector::item17
2042             , typename Vector::item18, typename Vector::item19
2043             , typename Vector::item20, typename Vector::item21
2044             , typename Vector::item22, typename Vector::item23
2045             , typename Vector::item24, typename Vector::item25
2046             , typename Vector::item26, typename Vector::item27
2047             , typename Vector::item28
2048             > type;
2049     };
2050 };
2051
2052 namespace aux {
2053 template<> struct v_at_impl<30>
2054 {
2055     template< typename V_ > struct result_
2056     {
2057         typedef typename V_::item30 type;
2058     };
2059 };
2060
2061 }
2062
2063 template<>
2064 struct at_impl< aux::vector_tag<30> >
2065 {
2066     template< typename V_, typename N > struct apply
2067     {
2068         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
2069             ::template result_<V_>::type type;
2070     };
2071 };
2072
2073 template<>
2074 struct front_impl< aux::vector_tag<30> >
2075 {
2076     template< typename Vector > struct apply
2077     {
2078         typedef typename Vector::item0 type;
2079     };
2080 };
2081
2082 template<>
2083 struct back_impl< aux::vector_tag<30> >
2084 {
2085     template< typename Vector > struct apply
2086     {
2087         typedef typename Vector::back type;
2088     };
2089 };
2090
2091 template<>
2092 struct empty_impl< aux::vector_tag<30> >
2093 {
2094     template< typename Vector > struct apply
2095         : false_
2096     {
2097     };
2098 };
2099
2100 template<>
2101 struct size_impl< aux::vector_tag<30> >
2102 {
2103     template< typename Vector > struct apply
2104         : long_<30>
2105     {
2106     };
2107 };
2108
2109 template<>
2110 struct O1_size_impl< aux::vector_tag<30> >
2111     : size_impl< aux::vector_tag<30> >
2112 {
2113 };
2114
2115 template<>
2116 struct clear_impl< aux::vector_tag<30> >
2117 {
2118     template< typename Vector > struct apply
2119     {
2120         typedef vector0<> type;
2121     };
2122 };
2123
2124 }}