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