]> git.donarmstrong.com Git - rsem.git/blob - boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp
RSEM Source Codes
[rsem.git] / boost / mpl / vector / aux_ / preprocessed / no_ctps / 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 namespace aux {
203 template<> struct v_at_impl<41>
204 {
205     template< typename V_ > struct result_
206     {
207         typedef typename V_::item41 type;
208     };
209 };
210
211 }
212
213 template<>
214 struct at_impl< aux::vector_tag<41> >
215 {
216     template< typename V_, typename N > struct apply
217     {
218         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
219             ::template result_<V_>::type type;
220     };
221 };
222
223 template<>
224 struct front_impl< aux::vector_tag<41> >
225 {
226     template< typename Vector > struct apply
227     {
228         typedef typename Vector::item0 type;
229     };
230 };
231
232 template<>
233 struct back_impl< aux::vector_tag<41> >
234 {
235     template< typename Vector > struct apply
236     {
237         typedef typename Vector::back type;
238     };
239 };
240
241 template<>
242 struct empty_impl< aux::vector_tag<41> >
243 {
244     template< typename Vector > struct apply
245         : false_
246     {
247     };
248 };
249
250 template<>
251 struct size_impl< aux::vector_tag<41> >
252 {
253     template< typename Vector > struct apply
254         : long_<41>
255     {
256     };
257 };
258
259 template<>
260 struct O1_size_impl< aux::vector_tag<41> >
261     : size_impl< aux::vector_tag<41> >
262 {
263 };
264
265 template<>
266 struct clear_impl< aux::vector_tag<41> >
267 {
268     template< typename Vector > struct apply
269     {
270         typedef vector0<> type;
271     };
272 };
273
274 template<
275       typename T0, typename T1, typename T2, typename T3, typename T4
276     , typename T5, typename T6, typename T7, typename T8, typename T9
277     , typename T10, typename T11, typename T12, typename T13, typename T14
278     , typename T15, typename T16, typename T17, typename T18, typename T19
279     , typename T20, typename T21, typename T22, typename T23, typename T24
280     , typename T25, typename T26, typename T27, typename T28, typename T29
281     , typename T30, typename T31, typename T32, typename T33, typename T34
282     , typename T35, typename T36, typename T37, typename T38, typename T39
283     , typename T40, typename T41
284     >
285 struct vector42
286 {
287     typedef aux::vector_tag<42> tag;
288     typedef vector42 type;
289     typedef T0 item0;
290     typedef T1 item1;
291     typedef T2 item2;
292     typedef T3 item3;
293     typedef T4 item4;
294     typedef T5 item5;
295     typedef T6 item6;
296     typedef T7 item7;
297     typedef T8 item8;
298     typedef T9 item9;
299     typedef T10 item10;
300     typedef T11 item11;
301     typedef T12 item12;
302     typedef T13 item13;
303     typedef T14 item14;
304     typedef T15 item15;
305     typedef T16 item16;
306     typedef T17 item17;
307     typedef T18 item18;
308     typedef T19 item19;
309     typedef T20 item20;
310     typedef T21 item21;
311     typedef T22 item22;
312     typedef T23 item23;
313     typedef T24 item24;
314     typedef T25 item25;
315     typedef T26 item26;
316     typedef T27 item27;
317     typedef T28 item28;
318     typedef T29 item29;
319     typedef T30 item30;
320     typedef T31 item31;
321     typedef T32 item32;
322     typedef T33 item33;
323     typedef T34 item34;
324     typedef T35 item35;
325     typedef T36 item36;
326     typedef T37 item37;
327     typedef T38 item38;
328     typedef T39 item39;
329     typedef T40 item40;
330     typedef T41 item41;
331     
332
333     typedef void_ item42;
334     typedef T41 back;
335     typedef v_iter< type,0 > begin;
336     typedef v_iter< type,42 > end;
337 };
338
339 template<>
340 struct push_front_impl< aux::vector_tag<41> >
341 {
342     template< typename Vector, typename T > struct apply
343     {
344         typedef vector42<
345               T
346               ,
347               typename Vector::item0, typename Vector::item1
348             , typename Vector::item2, typename Vector::item3
349             , typename Vector::item4, typename Vector::item5
350             , typename Vector::item6, typename Vector::item7
351             , typename Vector::item8, typename Vector::item9
352             , typename Vector::item10, typename Vector::item11
353             , typename Vector::item12, typename Vector::item13
354             , typename Vector::item14, typename Vector::item15
355             , typename Vector::item16, typename Vector::item17
356             , typename Vector::item18, typename Vector::item19
357             , typename Vector::item20, typename Vector::item21
358             , typename Vector::item22, typename Vector::item23
359             , typename Vector::item24, typename Vector::item25
360             , typename Vector::item26, typename Vector::item27
361             , typename Vector::item28, typename Vector::item29
362             , typename Vector::item30, typename Vector::item31
363             , typename Vector::item32, typename Vector::item33
364             , typename Vector::item34, typename Vector::item35
365             , typename Vector::item36, typename Vector::item37
366             , typename Vector::item38, typename Vector::item39
367             , typename Vector::item40
368             > type;
369     };
370 };
371
372 template<>
373 struct pop_front_impl< aux::vector_tag<42> >
374 {
375     template< typename Vector > struct apply
376     {
377         typedef vector41<
378               typename Vector::item1, typename Vector::item2
379             , typename Vector::item3, typename Vector::item4
380             , typename Vector::item5, typename Vector::item6
381             , typename Vector::item7, typename Vector::item8
382             , typename Vector::item9, typename Vector::item10
383             , typename Vector::item11, typename Vector::item12
384             , typename Vector::item13, typename Vector::item14
385             , typename Vector::item15, typename Vector::item16
386             , typename Vector::item17, typename Vector::item18
387             , typename Vector::item19, typename Vector::item20
388             , typename Vector::item21, typename Vector::item22
389             , typename Vector::item23, typename Vector::item24
390             , typename Vector::item25, typename Vector::item26
391             , typename Vector::item27, typename Vector::item28
392             , typename Vector::item29, typename Vector::item30
393             , typename Vector::item31, typename Vector::item32
394             , typename Vector::item33, typename Vector::item34
395             , typename Vector::item35, typename Vector::item36
396             , typename Vector::item37, typename Vector::item38
397             , typename Vector::item39, typename Vector::item40
398             , typename Vector::item41
399             > type;
400     };
401 };
402
403 template<>
404 struct push_back_impl< aux::vector_tag<41> >
405 {
406     template< typename Vector, typename T > struct apply
407     {
408         typedef vector42<
409               typename Vector::item0, typename Vector::item1
410             , typename Vector::item2, typename Vector::item3
411             , typename Vector::item4, typename Vector::item5
412             , typename Vector::item6, typename Vector::item7
413             , typename Vector::item8, typename Vector::item9
414             , typename Vector::item10, typename Vector::item11
415             , typename Vector::item12, typename Vector::item13
416             , typename Vector::item14, typename Vector::item15
417             , typename Vector::item16, typename Vector::item17
418             , typename Vector::item18, typename Vector::item19
419             , typename Vector::item20, typename Vector::item21
420             , typename Vector::item22, typename Vector::item23
421             , typename Vector::item24, typename Vector::item25
422             , typename Vector::item26, typename Vector::item27
423             , typename Vector::item28, typename Vector::item29
424             , typename Vector::item30, typename Vector::item31
425             , typename Vector::item32, typename Vector::item33
426             , typename Vector::item34, typename Vector::item35
427             , typename Vector::item36, typename Vector::item37
428             , typename Vector::item38, typename Vector::item39
429             , typename Vector::item40
430               ,
431               T
432             > type;
433     };
434 };
435
436 template<>
437 struct pop_back_impl< aux::vector_tag<42> >
438 {
439     template< typename Vector > struct apply
440     {
441         typedef vector41<
442               typename Vector::item0, typename Vector::item1
443             , typename Vector::item2, typename Vector::item3
444             , typename Vector::item4, typename Vector::item5
445             , typename Vector::item6, typename Vector::item7
446             , typename Vector::item8, typename Vector::item9
447             , typename Vector::item10, typename Vector::item11
448             , typename Vector::item12, typename Vector::item13
449             , typename Vector::item14, typename Vector::item15
450             , typename Vector::item16, typename Vector::item17
451             , typename Vector::item18, typename Vector::item19
452             , typename Vector::item20, typename Vector::item21
453             , typename Vector::item22, typename Vector::item23
454             , typename Vector::item24, typename Vector::item25
455             , typename Vector::item26, typename Vector::item27
456             , typename Vector::item28, typename Vector::item29
457             , typename Vector::item30, typename Vector::item31
458             , typename Vector::item32, typename Vector::item33
459             , typename Vector::item34, typename Vector::item35
460             , typename Vector::item36, typename Vector::item37
461             , typename Vector::item38, typename Vector::item39
462             , typename Vector::item40
463             > type;
464     };
465 };
466
467 namespace aux {
468 template<> struct v_at_impl<42>
469 {
470     template< typename V_ > struct result_
471     {
472         typedef typename V_::item42 type;
473     };
474 };
475
476 }
477
478 template<>
479 struct at_impl< aux::vector_tag<42> >
480 {
481     template< typename V_, typename N > struct apply
482     {
483         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
484             ::template result_<V_>::type type;
485     };
486 };
487
488 template<>
489 struct front_impl< aux::vector_tag<42> >
490 {
491     template< typename Vector > struct apply
492     {
493         typedef typename Vector::item0 type;
494     };
495 };
496
497 template<>
498 struct back_impl< aux::vector_tag<42> >
499 {
500     template< typename Vector > struct apply
501     {
502         typedef typename Vector::back type;
503     };
504 };
505
506 template<>
507 struct empty_impl< aux::vector_tag<42> >
508 {
509     template< typename Vector > struct apply
510         : false_
511     {
512     };
513 };
514
515 template<>
516 struct size_impl< aux::vector_tag<42> >
517 {
518     template< typename Vector > struct apply
519         : long_<42>
520     {
521     };
522 };
523
524 template<>
525 struct O1_size_impl< aux::vector_tag<42> >
526     : size_impl< aux::vector_tag<42> >
527 {
528 };
529
530 template<>
531 struct clear_impl< aux::vector_tag<42> >
532 {
533     template< typename Vector > struct apply
534     {
535         typedef vector0<> type;
536     };
537 };
538
539 template<
540       typename T0, typename T1, typename T2, typename T3, typename T4
541     , typename T5, typename T6, typename T7, typename T8, typename T9
542     , typename T10, typename T11, typename T12, typename T13, typename T14
543     , typename T15, typename T16, typename T17, typename T18, typename T19
544     , typename T20, typename T21, typename T22, typename T23, typename T24
545     , typename T25, typename T26, typename T27, typename T28, typename T29
546     , typename T30, typename T31, typename T32, typename T33, typename T34
547     , typename T35, typename T36, typename T37, typename T38, typename T39
548     , typename T40, typename T41, typename T42
549     >
550 struct vector43
551 {
552     typedef aux::vector_tag<43> tag;
553     typedef vector43 type;
554     typedef T0 item0;
555     typedef T1 item1;
556     typedef T2 item2;
557     typedef T3 item3;
558     typedef T4 item4;
559     typedef T5 item5;
560     typedef T6 item6;
561     typedef T7 item7;
562     typedef T8 item8;
563     typedef T9 item9;
564     typedef T10 item10;
565     typedef T11 item11;
566     typedef T12 item12;
567     typedef T13 item13;
568     typedef T14 item14;
569     typedef T15 item15;
570     typedef T16 item16;
571     typedef T17 item17;
572     typedef T18 item18;
573     typedef T19 item19;
574     typedef T20 item20;
575     typedef T21 item21;
576     typedef T22 item22;
577     typedef T23 item23;
578     typedef T24 item24;
579     typedef T25 item25;
580     typedef T26 item26;
581     typedef T27 item27;
582     typedef T28 item28;
583     typedef T29 item29;
584     typedef T30 item30;
585     typedef T31 item31;
586     typedef T32 item32;
587     typedef T33 item33;
588     typedef T34 item34;
589     typedef T35 item35;
590     typedef T36 item36;
591     typedef T37 item37;
592     typedef T38 item38;
593     typedef T39 item39;
594     typedef T40 item40;
595     typedef T41 item41;
596     typedef T42 item42;
597     
598
599     typedef void_ item43;
600     typedef T42 back;
601     typedef v_iter< type,0 > begin;
602     typedef v_iter< type,43 > end;
603 };
604
605 template<>
606 struct push_front_impl< aux::vector_tag<42> >
607 {
608     template< typename Vector, typename T > struct apply
609     {
610         typedef vector43<
611               T
612               ,
613               typename Vector::item0, typename Vector::item1
614             , typename Vector::item2, typename Vector::item3
615             , typename Vector::item4, typename Vector::item5
616             , typename Vector::item6, typename Vector::item7
617             , typename Vector::item8, typename Vector::item9
618             , typename Vector::item10, typename Vector::item11
619             , typename Vector::item12, typename Vector::item13
620             , typename Vector::item14, typename Vector::item15
621             , typename Vector::item16, typename Vector::item17
622             , typename Vector::item18, typename Vector::item19
623             , typename Vector::item20, typename Vector::item21
624             , typename Vector::item22, typename Vector::item23
625             , typename Vector::item24, typename Vector::item25
626             , typename Vector::item26, typename Vector::item27
627             , typename Vector::item28, typename Vector::item29
628             , typename Vector::item30, typename Vector::item31
629             , typename Vector::item32, typename Vector::item33
630             , typename Vector::item34, typename Vector::item35
631             , typename Vector::item36, typename Vector::item37
632             , typename Vector::item38, typename Vector::item39
633             , typename Vector::item40, typename Vector::item41
634             > type;
635     };
636 };
637
638 template<>
639 struct pop_front_impl< aux::vector_tag<43> >
640 {
641     template< typename Vector > struct apply
642     {
643         typedef vector42<
644               typename Vector::item1, typename Vector::item2
645             , typename Vector::item3, typename Vector::item4
646             , typename Vector::item5, typename Vector::item6
647             , typename Vector::item7, typename Vector::item8
648             , typename Vector::item9, typename Vector::item10
649             , typename Vector::item11, typename Vector::item12
650             , typename Vector::item13, typename Vector::item14
651             , typename Vector::item15, typename Vector::item16
652             , typename Vector::item17, typename Vector::item18
653             , typename Vector::item19, typename Vector::item20
654             , typename Vector::item21, typename Vector::item22
655             , typename Vector::item23, typename Vector::item24
656             , typename Vector::item25, typename Vector::item26
657             , typename Vector::item27, typename Vector::item28
658             , typename Vector::item29, typename Vector::item30
659             , typename Vector::item31, typename Vector::item32
660             , typename Vector::item33, typename Vector::item34
661             , typename Vector::item35, typename Vector::item36
662             , typename Vector::item37, typename Vector::item38
663             , typename Vector::item39, typename Vector::item40
664             , typename Vector::item41, typename Vector::item42
665             > type;
666     };
667 };
668
669 template<>
670 struct push_back_impl< aux::vector_tag<42> >
671 {
672     template< typename Vector, typename T > struct apply
673     {
674         typedef vector43<
675               typename Vector::item0, typename Vector::item1
676             , typename Vector::item2, typename Vector::item3
677             , typename Vector::item4, typename Vector::item5
678             , typename Vector::item6, typename Vector::item7
679             , typename Vector::item8, typename Vector::item9
680             , typename Vector::item10, typename Vector::item11
681             , typename Vector::item12, typename Vector::item13
682             , typename Vector::item14, typename Vector::item15
683             , typename Vector::item16, typename Vector::item17
684             , typename Vector::item18, typename Vector::item19
685             , typename Vector::item20, typename Vector::item21
686             , typename Vector::item22, typename Vector::item23
687             , typename Vector::item24, typename Vector::item25
688             , typename Vector::item26, typename Vector::item27
689             , typename Vector::item28, typename Vector::item29
690             , typename Vector::item30, typename Vector::item31
691             , typename Vector::item32, typename Vector::item33
692             , typename Vector::item34, typename Vector::item35
693             , typename Vector::item36, typename Vector::item37
694             , typename Vector::item38, typename Vector::item39
695             , typename Vector::item40, typename Vector::item41
696               ,
697               T
698             > type;
699     };
700 };
701
702 template<>
703 struct pop_back_impl< aux::vector_tag<43> >
704 {
705     template< typename Vector > struct apply
706     {
707         typedef vector42<
708               typename Vector::item0, typename Vector::item1
709             , typename Vector::item2, typename Vector::item3
710             , typename Vector::item4, typename Vector::item5
711             , typename Vector::item6, typename Vector::item7
712             , typename Vector::item8, typename Vector::item9
713             , typename Vector::item10, typename Vector::item11
714             , typename Vector::item12, typename Vector::item13
715             , typename Vector::item14, typename Vector::item15
716             , typename Vector::item16, typename Vector::item17
717             , typename Vector::item18, typename Vector::item19
718             , typename Vector::item20, typename Vector::item21
719             , typename Vector::item22, typename Vector::item23
720             , typename Vector::item24, typename Vector::item25
721             , typename Vector::item26, typename Vector::item27
722             , typename Vector::item28, typename Vector::item29
723             , typename Vector::item30, typename Vector::item31
724             , typename Vector::item32, typename Vector::item33
725             , typename Vector::item34, typename Vector::item35
726             , typename Vector::item36, typename Vector::item37
727             , typename Vector::item38, typename Vector::item39
728             , typename Vector::item40, typename Vector::item41
729             > type;
730     };
731 };
732
733 namespace aux {
734 template<> struct v_at_impl<43>
735 {
736     template< typename V_ > struct result_
737     {
738         typedef typename V_::item43 type;
739     };
740 };
741
742 }
743
744 template<>
745 struct at_impl< aux::vector_tag<43> >
746 {
747     template< typename V_, typename N > struct apply
748     {
749         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
750             ::template result_<V_>::type type;
751     };
752 };
753
754 template<>
755 struct front_impl< aux::vector_tag<43> >
756 {
757     template< typename Vector > struct apply
758     {
759         typedef typename Vector::item0 type;
760     };
761 };
762
763 template<>
764 struct back_impl< aux::vector_tag<43> >
765 {
766     template< typename Vector > struct apply
767     {
768         typedef typename Vector::back type;
769     };
770 };
771
772 template<>
773 struct empty_impl< aux::vector_tag<43> >
774 {
775     template< typename Vector > struct apply
776         : false_
777     {
778     };
779 };
780
781 template<>
782 struct size_impl< aux::vector_tag<43> >
783 {
784     template< typename Vector > struct apply
785         : long_<43>
786     {
787     };
788 };
789
790 template<>
791 struct O1_size_impl< aux::vector_tag<43> >
792     : size_impl< aux::vector_tag<43> >
793 {
794 };
795
796 template<>
797 struct clear_impl< aux::vector_tag<43> >
798 {
799     template< typename Vector > struct apply
800     {
801         typedef vector0<> type;
802     };
803 };
804
805 template<
806       typename T0, typename T1, typename T2, typename T3, typename T4
807     , typename T5, typename T6, typename T7, typename T8, typename T9
808     , typename T10, typename T11, typename T12, typename T13, typename T14
809     , typename T15, typename T16, typename T17, typename T18, typename T19
810     , typename T20, typename T21, typename T22, typename T23, typename T24
811     , typename T25, typename T26, typename T27, typename T28, typename T29
812     , typename T30, typename T31, typename T32, typename T33, typename T34
813     , typename T35, typename T36, typename T37, typename T38, typename T39
814     , typename T40, typename T41, typename T42, typename T43
815     >
816 struct vector44
817 {
818     typedef aux::vector_tag<44> tag;
819     typedef vector44 type;
820     typedef T0 item0;
821     typedef T1 item1;
822     typedef T2 item2;
823     typedef T3 item3;
824     typedef T4 item4;
825     typedef T5 item5;
826     typedef T6 item6;
827     typedef T7 item7;
828     typedef T8 item8;
829     typedef T9 item9;
830     typedef T10 item10;
831     typedef T11 item11;
832     typedef T12 item12;
833     typedef T13 item13;
834     typedef T14 item14;
835     typedef T15 item15;
836     typedef T16 item16;
837     typedef T17 item17;
838     typedef T18 item18;
839     typedef T19 item19;
840     typedef T20 item20;
841     typedef T21 item21;
842     typedef T22 item22;
843     typedef T23 item23;
844     typedef T24 item24;
845     typedef T25 item25;
846     typedef T26 item26;
847     typedef T27 item27;
848     typedef T28 item28;
849     typedef T29 item29;
850     typedef T30 item30;
851     typedef T31 item31;
852     typedef T32 item32;
853     typedef T33 item33;
854     typedef T34 item34;
855     typedef T35 item35;
856     typedef T36 item36;
857     typedef T37 item37;
858     typedef T38 item38;
859     typedef T39 item39;
860     typedef T40 item40;
861     typedef T41 item41;
862     typedef T42 item42;
863     typedef T43 item43;
864     
865
866     typedef void_ item44;
867     typedef T43 back;
868     typedef v_iter< type,0 > begin;
869     typedef v_iter< type,44 > end;
870 };
871
872 template<>
873 struct push_front_impl< aux::vector_tag<43> >
874 {
875     template< typename Vector, typename T > struct apply
876     {
877         typedef vector44<
878               T
879               ,
880               typename Vector::item0, typename Vector::item1
881             , typename Vector::item2, typename Vector::item3
882             , typename Vector::item4, typename Vector::item5
883             , typename Vector::item6, typename Vector::item7
884             , typename Vector::item8, typename Vector::item9
885             , typename Vector::item10, typename Vector::item11
886             , typename Vector::item12, typename Vector::item13
887             , typename Vector::item14, typename Vector::item15
888             , typename Vector::item16, typename Vector::item17
889             , typename Vector::item18, typename Vector::item19
890             , typename Vector::item20, typename Vector::item21
891             , typename Vector::item22, typename Vector::item23
892             , typename Vector::item24, typename Vector::item25
893             , typename Vector::item26, typename Vector::item27
894             , typename Vector::item28, typename Vector::item29
895             , typename Vector::item30, typename Vector::item31
896             , typename Vector::item32, typename Vector::item33
897             , typename Vector::item34, typename Vector::item35
898             , typename Vector::item36, typename Vector::item37
899             , typename Vector::item38, typename Vector::item39
900             , typename Vector::item40, typename Vector::item41
901             , typename Vector::item42
902             > type;
903     };
904 };
905
906 template<>
907 struct pop_front_impl< aux::vector_tag<44> >
908 {
909     template< typename Vector > struct apply
910     {
911         typedef vector43<
912               typename Vector::item1, typename Vector::item2
913             , typename Vector::item3, typename Vector::item4
914             , typename Vector::item5, typename Vector::item6
915             , typename Vector::item7, typename Vector::item8
916             , typename Vector::item9, typename Vector::item10
917             , typename Vector::item11, typename Vector::item12
918             , typename Vector::item13, typename Vector::item14
919             , typename Vector::item15, typename Vector::item16
920             , typename Vector::item17, typename Vector::item18
921             , typename Vector::item19, typename Vector::item20
922             , typename Vector::item21, typename Vector::item22
923             , typename Vector::item23, typename Vector::item24
924             , typename Vector::item25, typename Vector::item26
925             , typename Vector::item27, typename Vector::item28
926             , typename Vector::item29, typename Vector::item30
927             , typename Vector::item31, typename Vector::item32
928             , typename Vector::item33, typename Vector::item34
929             , typename Vector::item35, typename Vector::item36
930             , typename Vector::item37, typename Vector::item38
931             , typename Vector::item39, typename Vector::item40
932             , typename Vector::item41, typename Vector::item42
933             , typename Vector::item43
934             > type;
935     };
936 };
937
938 template<>
939 struct push_back_impl< aux::vector_tag<43> >
940 {
941     template< typename Vector, typename T > struct apply
942     {
943         typedef vector44<
944               typename Vector::item0, typename Vector::item1
945             , typename Vector::item2, typename Vector::item3
946             , typename Vector::item4, typename Vector::item5
947             , typename Vector::item6, typename Vector::item7
948             , typename Vector::item8, typename Vector::item9
949             , typename Vector::item10, typename Vector::item11
950             , typename Vector::item12, typename Vector::item13
951             , typename Vector::item14, typename Vector::item15
952             , typename Vector::item16, typename Vector::item17
953             , typename Vector::item18, typename Vector::item19
954             , typename Vector::item20, typename Vector::item21
955             , typename Vector::item22, typename Vector::item23
956             , typename Vector::item24, typename Vector::item25
957             , typename Vector::item26, typename Vector::item27
958             , typename Vector::item28, typename Vector::item29
959             , typename Vector::item30, typename Vector::item31
960             , typename Vector::item32, typename Vector::item33
961             , typename Vector::item34, typename Vector::item35
962             , typename Vector::item36, typename Vector::item37
963             , typename Vector::item38, typename Vector::item39
964             , typename Vector::item40, typename Vector::item41
965             , typename Vector::item42
966               ,
967               T
968             > type;
969     };
970 };
971
972 template<>
973 struct pop_back_impl< aux::vector_tag<44> >
974 {
975     template< typename Vector > struct apply
976     {
977         typedef vector43<
978               typename Vector::item0, typename Vector::item1
979             , typename Vector::item2, typename Vector::item3
980             , typename Vector::item4, typename Vector::item5
981             , typename Vector::item6, typename Vector::item7
982             , typename Vector::item8, typename Vector::item9
983             , typename Vector::item10, typename Vector::item11
984             , typename Vector::item12, typename Vector::item13
985             , typename Vector::item14, typename Vector::item15
986             , typename Vector::item16, typename Vector::item17
987             , typename Vector::item18, typename Vector::item19
988             , typename Vector::item20, typename Vector::item21
989             , typename Vector::item22, typename Vector::item23
990             , typename Vector::item24, typename Vector::item25
991             , typename Vector::item26, typename Vector::item27
992             , typename Vector::item28, typename Vector::item29
993             , typename Vector::item30, typename Vector::item31
994             , typename Vector::item32, typename Vector::item33
995             , typename Vector::item34, typename Vector::item35
996             , typename Vector::item36, typename Vector::item37
997             , typename Vector::item38, typename Vector::item39
998             , typename Vector::item40, typename Vector::item41
999             , typename Vector::item42
1000             > type;
1001     };
1002 };
1003
1004 namespace aux {
1005 template<> struct v_at_impl<44>
1006 {
1007     template< typename V_ > struct result_
1008     {
1009         typedef typename V_::item44 type;
1010     };
1011 };
1012
1013 }
1014
1015 template<>
1016 struct at_impl< aux::vector_tag<44> >
1017 {
1018     template< typename V_, typename N > struct apply
1019     {
1020         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1021             ::template result_<V_>::type type;
1022     };
1023 };
1024
1025 template<>
1026 struct front_impl< aux::vector_tag<44> >
1027 {
1028     template< typename Vector > struct apply
1029     {
1030         typedef typename Vector::item0 type;
1031     };
1032 };
1033
1034 template<>
1035 struct back_impl< aux::vector_tag<44> >
1036 {
1037     template< typename Vector > struct apply
1038     {
1039         typedef typename Vector::back type;
1040     };
1041 };
1042
1043 template<>
1044 struct empty_impl< aux::vector_tag<44> >
1045 {
1046     template< typename Vector > struct apply
1047         : false_
1048     {
1049     };
1050 };
1051
1052 template<>
1053 struct size_impl< aux::vector_tag<44> >
1054 {
1055     template< typename Vector > struct apply
1056         : long_<44>
1057     {
1058     };
1059 };
1060
1061 template<>
1062 struct O1_size_impl< aux::vector_tag<44> >
1063     : size_impl< aux::vector_tag<44> >
1064 {
1065 };
1066
1067 template<>
1068 struct clear_impl< aux::vector_tag<44> >
1069 {
1070     template< typename Vector > struct apply
1071     {
1072         typedef vector0<> type;
1073     };
1074 };
1075
1076 template<
1077       typename T0, typename T1, typename T2, typename T3, typename T4
1078     , typename T5, typename T6, typename T7, typename T8, typename T9
1079     , typename T10, typename T11, typename T12, typename T13, typename T14
1080     , typename T15, typename T16, typename T17, typename T18, typename T19
1081     , typename T20, typename T21, typename T22, typename T23, typename T24
1082     , typename T25, typename T26, typename T27, typename T28, typename T29
1083     , typename T30, typename T31, typename T32, typename T33, typename T34
1084     , typename T35, typename T36, typename T37, typename T38, typename T39
1085     , typename T40, typename T41, typename T42, typename T43, typename T44
1086     >
1087 struct vector45
1088 {
1089     typedef aux::vector_tag<45> tag;
1090     typedef vector45 type;
1091     typedef T0 item0;
1092     typedef T1 item1;
1093     typedef T2 item2;
1094     typedef T3 item3;
1095     typedef T4 item4;
1096     typedef T5 item5;
1097     typedef T6 item6;
1098     typedef T7 item7;
1099     typedef T8 item8;
1100     typedef T9 item9;
1101     typedef T10 item10;
1102     typedef T11 item11;
1103     typedef T12 item12;
1104     typedef T13 item13;
1105     typedef T14 item14;
1106     typedef T15 item15;
1107     typedef T16 item16;
1108     typedef T17 item17;
1109     typedef T18 item18;
1110     typedef T19 item19;
1111     typedef T20 item20;
1112     typedef T21 item21;
1113     typedef T22 item22;
1114     typedef T23 item23;
1115     typedef T24 item24;
1116     typedef T25 item25;
1117     typedef T26 item26;
1118     typedef T27 item27;
1119     typedef T28 item28;
1120     typedef T29 item29;
1121     typedef T30 item30;
1122     typedef T31 item31;
1123     typedef T32 item32;
1124     typedef T33 item33;
1125     typedef T34 item34;
1126     typedef T35 item35;
1127     typedef T36 item36;
1128     typedef T37 item37;
1129     typedef T38 item38;
1130     typedef T39 item39;
1131     typedef T40 item40;
1132     typedef T41 item41;
1133     typedef T42 item42;
1134     typedef T43 item43;
1135     typedef T44 item44;
1136     
1137
1138     typedef void_ item45;
1139     typedef T44 back;
1140     typedef v_iter< type,0 > begin;
1141     typedef v_iter< type,45 > end;
1142 };
1143
1144 template<>
1145 struct push_front_impl< aux::vector_tag<44> >
1146 {
1147     template< typename Vector, typename T > struct apply
1148     {
1149         typedef vector45<
1150               T
1151               ,
1152               typename Vector::item0, typename Vector::item1
1153             , typename Vector::item2, typename Vector::item3
1154             , typename Vector::item4, typename Vector::item5
1155             , typename Vector::item6, typename Vector::item7
1156             , typename Vector::item8, typename Vector::item9
1157             , typename Vector::item10, typename Vector::item11
1158             , typename Vector::item12, typename Vector::item13
1159             , typename Vector::item14, typename Vector::item15
1160             , typename Vector::item16, typename Vector::item17
1161             , typename Vector::item18, typename Vector::item19
1162             , typename Vector::item20, typename Vector::item21
1163             , typename Vector::item22, typename Vector::item23
1164             , typename Vector::item24, typename Vector::item25
1165             , typename Vector::item26, typename Vector::item27
1166             , typename Vector::item28, typename Vector::item29
1167             , typename Vector::item30, typename Vector::item31
1168             , typename Vector::item32, typename Vector::item33
1169             , typename Vector::item34, typename Vector::item35
1170             , typename Vector::item36, typename Vector::item37
1171             , typename Vector::item38, typename Vector::item39
1172             , typename Vector::item40, typename Vector::item41
1173             , typename Vector::item42, typename Vector::item43
1174             > type;
1175     };
1176 };
1177
1178 template<>
1179 struct pop_front_impl< aux::vector_tag<45> >
1180 {
1181     template< typename Vector > struct apply
1182     {
1183         typedef vector44<
1184               typename Vector::item1, typename Vector::item2
1185             , typename Vector::item3, typename Vector::item4
1186             , typename Vector::item5, typename Vector::item6
1187             , typename Vector::item7, typename Vector::item8
1188             , typename Vector::item9, typename Vector::item10
1189             , typename Vector::item11, typename Vector::item12
1190             , typename Vector::item13, typename Vector::item14
1191             , typename Vector::item15, typename Vector::item16
1192             , typename Vector::item17, typename Vector::item18
1193             , typename Vector::item19, typename Vector::item20
1194             , typename Vector::item21, typename Vector::item22
1195             , typename Vector::item23, typename Vector::item24
1196             , typename Vector::item25, typename Vector::item26
1197             , typename Vector::item27, typename Vector::item28
1198             , typename Vector::item29, typename Vector::item30
1199             , typename Vector::item31, typename Vector::item32
1200             , typename Vector::item33, typename Vector::item34
1201             , typename Vector::item35, typename Vector::item36
1202             , typename Vector::item37, typename Vector::item38
1203             , typename Vector::item39, typename Vector::item40
1204             , typename Vector::item41, typename Vector::item42
1205             , typename Vector::item43, typename Vector::item44
1206             > type;
1207     };
1208 };
1209
1210 template<>
1211 struct push_back_impl< aux::vector_tag<44> >
1212 {
1213     template< typename Vector, typename T > struct apply
1214     {
1215         typedef vector45<
1216               typename Vector::item0, typename Vector::item1
1217             , typename Vector::item2, typename Vector::item3
1218             , typename Vector::item4, typename Vector::item5
1219             , typename Vector::item6, typename Vector::item7
1220             , typename Vector::item8, typename Vector::item9
1221             , typename Vector::item10, typename Vector::item11
1222             , typename Vector::item12, typename Vector::item13
1223             , typename Vector::item14, typename Vector::item15
1224             , typename Vector::item16, typename Vector::item17
1225             , typename Vector::item18, typename Vector::item19
1226             , typename Vector::item20, typename Vector::item21
1227             , typename Vector::item22, typename Vector::item23
1228             , typename Vector::item24, typename Vector::item25
1229             , typename Vector::item26, typename Vector::item27
1230             , typename Vector::item28, typename Vector::item29
1231             , typename Vector::item30, typename Vector::item31
1232             , typename Vector::item32, typename Vector::item33
1233             , typename Vector::item34, typename Vector::item35
1234             , typename Vector::item36, typename Vector::item37
1235             , typename Vector::item38, typename Vector::item39
1236             , typename Vector::item40, typename Vector::item41
1237             , typename Vector::item42, typename Vector::item43
1238               ,
1239               T
1240             > type;
1241     };
1242 };
1243
1244 template<>
1245 struct pop_back_impl< aux::vector_tag<45> >
1246 {
1247     template< typename Vector > struct apply
1248     {
1249         typedef vector44<
1250               typename Vector::item0, typename Vector::item1
1251             , typename Vector::item2, typename Vector::item3
1252             , typename Vector::item4, typename Vector::item5
1253             , typename Vector::item6, typename Vector::item7
1254             , typename Vector::item8, typename Vector::item9
1255             , typename Vector::item10, typename Vector::item11
1256             , typename Vector::item12, typename Vector::item13
1257             , typename Vector::item14, typename Vector::item15
1258             , typename Vector::item16, typename Vector::item17
1259             , typename Vector::item18, typename Vector::item19
1260             , typename Vector::item20, typename Vector::item21
1261             , typename Vector::item22, typename Vector::item23
1262             , typename Vector::item24, typename Vector::item25
1263             , typename Vector::item26, typename Vector::item27
1264             , typename Vector::item28, typename Vector::item29
1265             , typename Vector::item30, typename Vector::item31
1266             , typename Vector::item32, typename Vector::item33
1267             , typename Vector::item34, typename Vector::item35
1268             , typename Vector::item36, typename Vector::item37
1269             , typename Vector::item38, typename Vector::item39
1270             , typename Vector::item40, typename Vector::item41
1271             , typename Vector::item42, typename Vector::item43
1272             > type;
1273     };
1274 };
1275
1276 namespace aux {
1277 template<> struct v_at_impl<45>
1278 {
1279     template< typename V_ > struct result_
1280     {
1281         typedef typename V_::item45 type;
1282     };
1283 };
1284
1285 }
1286
1287 template<>
1288 struct at_impl< aux::vector_tag<45> >
1289 {
1290     template< typename V_, typename N > struct apply
1291     {
1292         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1293             ::template result_<V_>::type type;
1294     };
1295 };
1296
1297 template<>
1298 struct front_impl< aux::vector_tag<45> >
1299 {
1300     template< typename Vector > struct apply
1301     {
1302         typedef typename Vector::item0 type;
1303     };
1304 };
1305
1306 template<>
1307 struct back_impl< aux::vector_tag<45> >
1308 {
1309     template< typename Vector > struct apply
1310     {
1311         typedef typename Vector::back type;
1312     };
1313 };
1314
1315 template<>
1316 struct empty_impl< aux::vector_tag<45> >
1317 {
1318     template< typename Vector > struct apply
1319         : false_
1320     {
1321     };
1322 };
1323
1324 template<>
1325 struct size_impl< aux::vector_tag<45> >
1326 {
1327     template< typename Vector > struct apply
1328         : long_<45>
1329     {
1330     };
1331 };
1332
1333 template<>
1334 struct O1_size_impl< aux::vector_tag<45> >
1335     : size_impl< aux::vector_tag<45> >
1336 {
1337 };
1338
1339 template<>
1340 struct clear_impl< aux::vector_tag<45> >
1341 {
1342     template< typename Vector > struct apply
1343     {
1344         typedef vector0<> type;
1345     };
1346 };
1347
1348 template<
1349       typename T0, typename T1, typename T2, typename T3, typename T4
1350     , typename T5, typename T6, typename T7, typename T8, typename T9
1351     , typename T10, typename T11, typename T12, typename T13, typename T14
1352     , typename T15, typename T16, typename T17, typename T18, typename T19
1353     , typename T20, typename T21, typename T22, typename T23, typename T24
1354     , typename T25, typename T26, typename T27, typename T28, typename T29
1355     , typename T30, typename T31, typename T32, typename T33, typename T34
1356     , typename T35, typename T36, typename T37, typename T38, typename T39
1357     , typename T40, typename T41, typename T42, typename T43, typename T44
1358     , typename T45
1359     >
1360 struct vector46
1361 {
1362     typedef aux::vector_tag<46> tag;
1363     typedef vector46 type;
1364     typedef T0 item0;
1365     typedef T1 item1;
1366     typedef T2 item2;
1367     typedef T3 item3;
1368     typedef T4 item4;
1369     typedef T5 item5;
1370     typedef T6 item6;
1371     typedef T7 item7;
1372     typedef T8 item8;
1373     typedef T9 item9;
1374     typedef T10 item10;
1375     typedef T11 item11;
1376     typedef T12 item12;
1377     typedef T13 item13;
1378     typedef T14 item14;
1379     typedef T15 item15;
1380     typedef T16 item16;
1381     typedef T17 item17;
1382     typedef T18 item18;
1383     typedef T19 item19;
1384     typedef T20 item20;
1385     typedef T21 item21;
1386     typedef T22 item22;
1387     typedef T23 item23;
1388     typedef T24 item24;
1389     typedef T25 item25;
1390     typedef T26 item26;
1391     typedef T27 item27;
1392     typedef T28 item28;
1393     typedef T29 item29;
1394     typedef T30 item30;
1395     typedef T31 item31;
1396     typedef T32 item32;
1397     typedef T33 item33;
1398     typedef T34 item34;
1399     typedef T35 item35;
1400     typedef T36 item36;
1401     typedef T37 item37;
1402     typedef T38 item38;
1403     typedef T39 item39;
1404     typedef T40 item40;
1405     typedef T41 item41;
1406     typedef T42 item42;
1407     typedef T43 item43;
1408     typedef T44 item44;
1409     typedef T45 item45;
1410     
1411
1412     typedef void_ item46;
1413     typedef T45 back;
1414     typedef v_iter< type,0 > begin;
1415     typedef v_iter< type,46 > end;
1416 };
1417
1418 template<>
1419 struct push_front_impl< aux::vector_tag<45> >
1420 {
1421     template< typename Vector, typename T > struct apply
1422     {
1423         typedef vector46<
1424               T
1425               ,
1426               typename Vector::item0, typename Vector::item1
1427             , typename Vector::item2, typename Vector::item3
1428             , typename Vector::item4, typename Vector::item5
1429             , typename Vector::item6, typename Vector::item7
1430             , typename Vector::item8, typename Vector::item9
1431             , typename Vector::item10, typename Vector::item11
1432             , typename Vector::item12, typename Vector::item13
1433             , typename Vector::item14, typename Vector::item15
1434             , typename Vector::item16, typename Vector::item17
1435             , typename Vector::item18, typename Vector::item19
1436             , typename Vector::item20, typename Vector::item21
1437             , typename Vector::item22, typename Vector::item23
1438             , typename Vector::item24, typename Vector::item25
1439             , typename Vector::item26, typename Vector::item27
1440             , typename Vector::item28, typename Vector::item29
1441             , typename Vector::item30, typename Vector::item31
1442             , typename Vector::item32, typename Vector::item33
1443             , typename Vector::item34, typename Vector::item35
1444             , typename Vector::item36, typename Vector::item37
1445             , typename Vector::item38, typename Vector::item39
1446             , typename Vector::item40, typename Vector::item41
1447             , typename Vector::item42, typename Vector::item43
1448             , typename Vector::item44
1449             > type;
1450     };
1451 };
1452
1453 template<>
1454 struct pop_front_impl< aux::vector_tag<46> >
1455 {
1456     template< typename Vector > struct apply
1457     {
1458         typedef vector45<
1459               typename Vector::item1, typename Vector::item2
1460             , typename Vector::item3, typename Vector::item4
1461             , typename Vector::item5, typename Vector::item6
1462             , typename Vector::item7, typename Vector::item8
1463             , typename Vector::item9, typename Vector::item10
1464             , typename Vector::item11, typename Vector::item12
1465             , typename Vector::item13, typename Vector::item14
1466             , typename Vector::item15, typename Vector::item16
1467             , typename Vector::item17, typename Vector::item18
1468             , typename Vector::item19, typename Vector::item20
1469             , typename Vector::item21, typename Vector::item22
1470             , typename Vector::item23, typename Vector::item24
1471             , typename Vector::item25, typename Vector::item26
1472             , typename Vector::item27, typename Vector::item28
1473             , typename Vector::item29, typename Vector::item30
1474             , typename Vector::item31, typename Vector::item32
1475             , typename Vector::item33, typename Vector::item34
1476             , typename Vector::item35, typename Vector::item36
1477             , typename Vector::item37, typename Vector::item38
1478             , typename Vector::item39, typename Vector::item40
1479             , typename Vector::item41, typename Vector::item42
1480             , typename Vector::item43, typename Vector::item44
1481             , typename Vector::item45
1482             > type;
1483     };
1484 };
1485
1486 template<>
1487 struct push_back_impl< aux::vector_tag<45> >
1488 {
1489     template< typename Vector, typename T > struct apply
1490     {
1491         typedef vector46<
1492               typename Vector::item0, typename Vector::item1
1493             , typename Vector::item2, typename Vector::item3
1494             , typename Vector::item4, typename Vector::item5
1495             , typename Vector::item6, typename Vector::item7
1496             , typename Vector::item8, typename Vector::item9
1497             , typename Vector::item10, typename Vector::item11
1498             , typename Vector::item12, typename Vector::item13
1499             , typename Vector::item14, typename Vector::item15
1500             , typename Vector::item16, typename Vector::item17
1501             , typename Vector::item18, typename Vector::item19
1502             , typename Vector::item20, typename Vector::item21
1503             , typename Vector::item22, typename Vector::item23
1504             , typename Vector::item24, typename Vector::item25
1505             , typename Vector::item26, typename Vector::item27
1506             , typename Vector::item28, typename Vector::item29
1507             , typename Vector::item30, typename Vector::item31
1508             , typename Vector::item32, typename Vector::item33
1509             , typename Vector::item34, typename Vector::item35
1510             , typename Vector::item36, typename Vector::item37
1511             , typename Vector::item38, typename Vector::item39
1512             , typename Vector::item40, typename Vector::item41
1513             , typename Vector::item42, typename Vector::item43
1514             , typename Vector::item44
1515               ,
1516               T
1517             > type;
1518     };
1519 };
1520
1521 template<>
1522 struct pop_back_impl< aux::vector_tag<46> >
1523 {
1524     template< typename Vector > struct apply
1525     {
1526         typedef vector45<
1527               typename Vector::item0, typename Vector::item1
1528             , typename Vector::item2, typename Vector::item3
1529             , typename Vector::item4, typename Vector::item5
1530             , typename Vector::item6, typename Vector::item7
1531             , typename Vector::item8, typename Vector::item9
1532             , typename Vector::item10, typename Vector::item11
1533             , typename Vector::item12, typename Vector::item13
1534             , typename Vector::item14, typename Vector::item15
1535             , typename Vector::item16, typename Vector::item17
1536             , typename Vector::item18, typename Vector::item19
1537             , typename Vector::item20, typename Vector::item21
1538             , typename Vector::item22, typename Vector::item23
1539             , typename Vector::item24, typename Vector::item25
1540             , typename Vector::item26, typename Vector::item27
1541             , typename Vector::item28, typename Vector::item29
1542             , typename Vector::item30, typename Vector::item31
1543             , typename Vector::item32, typename Vector::item33
1544             , typename Vector::item34, typename Vector::item35
1545             , typename Vector::item36, typename Vector::item37
1546             , typename Vector::item38, typename Vector::item39
1547             , typename Vector::item40, typename Vector::item41
1548             , typename Vector::item42, typename Vector::item43
1549             , typename Vector::item44
1550             > type;
1551     };
1552 };
1553
1554 namespace aux {
1555 template<> struct v_at_impl<46>
1556 {
1557     template< typename V_ > struct result_
1558     {
1559         typedef typename V_::item46 type;
1560     };
1561 };
1562
1563 }
1564
1565 template<>
1566 struct at_impl< aux::vector_tag<46> >
1567 {
1568     template< typename V_, typename N > struct apply
1569     {
1570         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1571             ::template result_<V_>::type type;
1572     };
1573 };
1574
1575 template<>
1576 struct front_impl< aux::vector_tag<46> >
1577 {
1578     template< typename Vector > struct apply
1579     {
1580         typedef typename Vector::item0 type;
1581     };
1582 };
1583
1584 template<>
1585 struct back_impl< aux::vector_tag<46> >
1586 {
1587     template< typename Vector > struct apply
1588     {
1589         typedef typename Vector::back type;
1590     };
1591 };
1592
1593 template<>
1594 struct empty_impl< aux::vector_tag<46> >
1595 {
1596     template< typename Vector > struct apply
1597         : false_
1598     {
1599     };
1600 };
1601
1602 template<>
1603 struct size_impl< aux::vector_tag<46> >
1604 {
1605     template< typename Vector > struct apply
1606         : long_<46>
1607     {
1608     };
1609 };
1610
1611 template<>
1612 struct O1_size_impl< aux::vector_tag<46> >
1613     : size_impl< aux::vector_tag<46> >
1614 {
1615 };
1616
1617 template<>
1618 struct clear_impl< aux::vector_tag<46> >
1619 {
1620     template< typename Vector > struct apply
1621     {
1622         typedef vector0<> type;
1623     };
1624 };
1625
1626 template<
1627       typename T0, typename T1, typename T2, typename T3, typename T4
1628     , typename T5, typename T6, typename T7, typename T8, typename T9
1629     , typename T10, typename T11, typename T12, typename T13, typename T14
1630     , typename T15, typename T16, typename T17, typename T18, typename T19
1631     , typename T20, typename T21, typename T22, typename T23, typename T24
1632     , typename T25, typename T26, typename T27, typename T28, typename T29
1633     , typename T30, typename T31, typename T32, typename T33, typename T34
1634     , typename T35, typename T36, typename T37, typename T38, typename T39
1635     , typename T40, typename T41, typename T42, typename T43, typename T44
1636     , typename T45, typename T46
1637     >
1638 struct vector47
1639 {
1640     typedef aux::vector_tag<47> tag;
1641     typedef vector47 type;
1642     typedef T0 item0;
1643     typedef T1 item1;
1644     typedef T2 item2;
1645     typedef T3 item3;
1646     typedef T4 item4;
1647     typedef T5 item5;
1648     typedef T6 item6;
1649     typedef T7 item7;
1650     typedef T8 item8;
1651     typedef T9 item9;
1652     typedef T10 item10;
1653     typedef T11 item11;
1654     typedef T12 item12;
1655     typedef T13 item13;
1656     typedef T14 item14;
1657     typedef T15 item15;
1658     typedef T16 item16;
1659     typedef T17 item17;
1660     typedef T18 item18;
1661     typedef T19 item19;
1662     typedef T20 item20;
1663     typedef T21 item21;
1664     typedef T22 item22;
1665     typedef T23 item23;
1666     typedef T24 item24;
1667     typedef T25 item25;
1668     typedef T26 item26;
1669     typedef T27 item27;
1670     typedef T28 item28;
1671     typedef T29 item29;
1672     typedef T30 item30;
1673     typedef T31 item31;
1674     typedef T32 item32;
1675     typedef T33 item33;
1676     typedef T34 item34;
1677     typedef T35 item35;
1678     typedef T36 item36;
1679     typedef T37 item37;
1680     typedef T38 item38;
1681     typedef T39 item39;
1682     typedef T40 item40;
1683     typedef T41 item41;
1684     typedef T42 item42;
1685     typedef T43 item43;
1686     typedef T44 item44;
1687     typedef T45 item45;
1688     typedef T46 item46;
1689     
1690
1691     typedef void_ item47;
1692     typedef T46 back;
1693     typedef v_iter< type,0 > begin;
1694     typedef v_iter< type,47 > end;
1695 };
1696
1697 template<>
1698 struct push_front_impl< aux::vector_tag<46> >
1699 {
1700     template< typename Vector, typename T > struct apply
1701     {
1702         typedef vector47<
1703               T
1704               ,
1705               typename Vector::item0, typename Vector::item1
1706             , typename Vector::item2, typename Vector::item3
1707             , typename Vector::item4, typename Vector::item5
1708             , typename Vector::item6, typename Vector::item7
1709             , typename Vector::item8, typename Vector::item9
1710             , typename Vector::item10, typename Vector::item11
1711             , typename Vector::item12, typename Vector::item13
1712             , typename Vector::item14, typename Vector::item15
1713             , typename Vector::item16, typename Vector::item17
1714             , typename Vector::item18, typename Vector::item19
1715             , typename Vector::item20, typename Vector::item21
1716             , typename Vector::item22, typename Vector::item23
1717             , typename Vector::item24, typename Vector::item25
1718             , typename Vector::item26, typename Vector::item27
1719             , typename Vector::item28, typename Vector::item29
1720             , typename Vector::item30, typename Vector::item31
1721             , typename Vector::item32, typename Vector::item33
1722             , typename Vector::item34, typename Vector::item35
1723             , typename Vector::item36, typename Vector::item37
1724             , typename Vector::item38, typename Vector::item39
1725             , typename Vector::item40, typename Vector::item41
1726             , typename Vector::item42, typename Vector::item43
1727             , typename Vector::item44, typename Vector::item45
1728             > type;
1729     };
1730 };
1731
1732 template<>
1733 struct pop_front_impl< aux::vector_tag<47> >
1734 {
1735     template< typename Vector > struct apply
1736     {
1737         typedef vector46<
1738               typename Vector::item1, typename Vector::item2
1739             , typename Vector::item3, typename Vector::item4
1740             , typename Vector::item5, typename Vector::item6
1741             , typename Vector::item7, typename Vector::item8
1742             , typename Vector::item9, typename Vector::item10
1743             , typename Vector::item11, typename Vector::item12
1744             , typename Vector::item13, typename Vector::item14
1745             , typename Vector::item15, typename Vector::item16
1746             , typename Vector::item17, typename Vector::item18
1747             , typename Vector::item19, typename Vector::item20
1748             , typename Vector::item21, typename Vector::item22
1749             , typename Vector::item23, typename Vector::item24
1750             , typename Vector::item25, typename Vector::item26
1751             , typename Vector::item27, typename Vector::item28
1752             , typename Vector::item29, typename Vector::item30
1753             , typename Vector::item31, typename Vector::item32
1754             , typename Vector::item33, typename Vector::item34
1755             , typename Vector::item35, typename Vector::item36
1756             , typename Vector::item37, typename Vector::item38
1757             , typename Vector::item39, typename Vector::item40
1758             , typename Vector::item41, typename Vector::item42
1759             , typename Vector::item43, typename Vector::item44
1760             , typename Vector::item45, typename Vector::item46
1761             > type;
1762     };
1763 };
1764
1765 template<>
1766 struct push_back_impl< aux::vector_tag<46> >
1767 {
1768     template< typename Vector, typename T > struct apply
1769     {
1770         typedef vector47<
1771               typename Vector::item0, typename Vector::item1
1772             , typename Vector::item2, typename Vector::item3
1773             , typename Vector::item4, typename Vector::item5
1774             , typename Vector::item6, typename Vector::item7
1775             , typename Vector::item8, typename Vector::item9
1776             , typename Vector::item10, typename Vector::item11
1777             , typename Vector::item12, typename Vector::item13
1778             , typename Vector::item14, typename Vector::item15
1779             , typename Vector::item16, typename Vector::item17
1780             , typename Vector::item18, typename Vector::item19
1781             , typename Vector::item20, typename Vector::item21
1782             , typename Vector::item22, typename Vector::item23
1783             , typename Vector::item24, typename Vector::item25
1784             , typename Vector::item26, typename Vector::item27
1785             , typename Vector::item28, typename Vector::item29
1786             , typename Vector::item30, typename Vector::item31
1787             , typename Vector::item32, typename Vector::item33
1788             , typename Vector::item34, typename Vector::item35
1789             , typename Vector::item36, typename Vector::item37
1790             , typename Vector::item38, typename Vector::item39
1791             , typename Vector::item40, typename Vector::item41
1792             , typename Vector::item42, typename Vector::item43
1793             , typename Vector::item44, typename Vector::item45
1794               ,
1795               T
1796             > type;
1797     };
1798 };
1799
1800 template<>
1801 struct pop_back_impl< aux::vector_tag<47> >
1802 {
1803     template< typename Vector > struct apply
1804     {
1805         typedef vector46<
1806               typename Vector::item0, typename Vector::item1
1807             , typename Vector::item2, typename Vector::item3
1808             , typename Vector::item4, typename Vector::item5
1809             , typename Vector::item6, typename Vector::item7
1810             , typename Vector::item8, typename Vector::item9
1811             , typename Vector::item10, typename Vector::item11
1812             , typename Vector::item12, typename Vector::item13
1813             , typename Vector::item14, typename Vector::item15
1814             , typename Vector::item16, typename Vector::item17
1815             , typename Vector::item18, typename Vector::item19
1816             , typename Vector::item20, typename Vector::item21
1817             , typename Vector::item22, typename Vector::item23
1818             , typename Vector::item24, typename Vector::item25
1819             , typename Vector::item26, typename Vector::item27
1820             , typename Vector::item28, typename Vector::item29
1821             , typename Vector::item30, typename Vector::item31
1822             , typename Vector::item32, typename Vector::item33
1823             , typename Vector::item34, typename Vector::item35
1824             , typename Vector::item36, typename Vector::item37
1825             , typename Vector::item38, typename Vector::item39
1826             , typename Vector::item40, typename Vector::item41
1827             , typename Vector::item42, typename Vector::item43
1828             , typename Vector::item44, typename Vector::item45
1829             > type;
1830     };
1831 };
1832
1833 namespace aux {
1834 template<> struct v_at_impl<47>
1835 {
1836     template< typename V_ > struct result_
1837     {
1838         typedef typename V_::item47 type;
1839     };
1840 };
1841
1842 }
1843
1844 template<>
1845 struct at_impl< aux::vector_tag<47> >
1846 {
1847     template< typename V_, typename N > struct apply
1848     {
1849         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
1850             ::template result_<V_>::type type;
1851     };
1852 };
1853
1854 template<>
1855 struct front_impl< aux::vector_tag<47> >
1856 {
1857     template< typename Vector > struct apply
1858     {
1859         typedef typename Vector::item0 type;
1860     };
1861 };
1862
1863 template<>
1864 struct back_impl< aux::vector_tag<47> >
1865 {
1866     template< typename Vector > struct apply
1867     {
1868         typedef typename Vector::back type;
1869     };
1870 };
1871
1872 template<>
1873 struct empty_impl< aux::vector_tag<47> >
1874 {
1875     template< typename Vector > struct apply
1876         : false_
1877     {
1878     };
1879 };
1880
1881 template<>
1882 struct size_impl< aux::vector_tag<47> >
1883 {
1884     template< typename Vector > struct apply
1885         : long_<47>
1886     {
1887     };
1888 };
1889
1890 template<>
1891 struct O1_size_impl< aux::vector_tag<47> >
1892     : size_impl< aux::vector_tag<47> >
1893 {
1894 };
1895
1896 template<>
1897 struct clear_impl< aux::vector_tag<47> >
1898 {
1899     template< typename Vector > struct apply
1900     {
1901         typedef vector0<> type;
1902     };
1903 };
1904
1905 template<
1906       typename T0, typename T1, typename T2, typename T3, typename T4
1907     , typename T5, typename T6, typename T7, typename T8, typename T9
1908     , typename T10, typename T11, typename T12, typename T13, typename T14
1909     , typename T15, typename T16, typename T17, typename T18, typename T19
1910     , typename T20, typename T21, typename T22, typename T23, typename T24
1911     , typename T25, typename T26, typename T27, typename T28, typename T29
1912     , typename T30, typename T31, typename T32, typename T33, typename T34
1913     , typename T35, typename T36, typename T37, typename T38, typename T39
1914     , typename T40, typename T41, typename T42, typename T43, typename T44
1915     , typename T45, typename T46, typename T47
1916     >
1917 struct vector48
1918 {
1919     typedef aux::vector_tag<48> tag;
1920     typedef vector48 type;
1921     typedef T0 item0;
1922     typedef T1 item1;
1923     typedef T2 item2;
1924     typedef T3 item3;
1925     typedef T4 item4;
1926     typedef T5 item5;
1927     typedef T6 item6;
1928     typedef T7 item7;
1929     typedef T8 item8;
1930     typedef T9 item9;
1931     typedef T10 item10;
1932     typedef T11 item11;
1933     typedef T12 item12;
1934     typedef T13 item13;
1935     typedef T14 item14;
1936     typedef T15 item15;
1937     typedef T16 item16;
1938     typedef T17 item17;
1939     typedef T18 item18;
1940     typedef T19 item19;
1941     typedef T20 item20;
1942     typedef T21 item21;
1943     typedef T22 item22;
1944     typedef T23 item23;
1945     typedef T24 item24;
1946     typedef T25 item25;
1947     typedef T26 item26;
1948     typedef T27 item27;
1949     typedef T28 item28;
1950     typedef T29 item29;
1951     typedef T30 item30;
1952     typedef T31 item31;
1953     typedef T32 item32;
1954     typedef T33 item33;
1955     typedef T34 item34;
1956     typedef T35 item35;
1957     typedef T36 item36;
1958     typedef T37 item37;
1959     typedef T38 item38;
1960     typedef T39 item39;
1961     typedef T40 item40;
1962     typedef T41 item41;
1963     typedef T42 item42;
1964     typedef T43 item43;
1965     typedef T44 item44;
1966     typedef T45 item45;
1967     typedef T46 item46;
1968     typedef T47 item47;
1969     
1970
1971     typedef void_ item48;
1972     typedef T47 back;
1973     typedef v_iter< type,0 > begin;
1974     typedef v_iter< type,48 > end;
1975 };
1976
1977 template<>
1978 struct push_front_impl< aux::vector_tag<47> >
1979 {
1980     template< typename Vector, typename T > struct apply
1981     {
1982         typedef vector48<
1983               T
1984               ,
1985               typename Vector::item0, typename Vector::item1
1986             , typename Vector::item2, typename Vector::item3
1987             , typename Vector::item4, typename Vector::item5
1988             , typename Vector::item6, typename Vector::item7
1989             , typename Vector::item8, typename Vector::item9
1990             , typename Vector::item10, typename Vector::item11
1991             , typename Vector::item12, typename Vector::item13
1992             , typename Vector::item14, typename Vector::item15
1993             , typename Vector::item16, typename Vector::item17
1994             , typename Vector::item18, typename Vector::item19
1995             , typename Vector::item20, typename Vector::item21
1996             , typename Vector::item22, typename Vector::item23
1997             , typename Vector::item24, typename Vector::item25
1998             , typename Vector::item26, typename Vector::item27
1999             , typename Vector::item28, typename Vector::item29
2000             , typename Vector::item30, typename Vector::item31
2001             , typename Vector::item32, typename Vector::item33
2002             , typename Vector::item34, typename Vector::item35
2003             , typename Vector::item36, typename Vector::item37
2004             , typename Vector::item38, typename Vector::item39
2005             , typename Vector::item40, typename Vector::item41
2006             , typename Vector::item42, typename Vector::item43
2007             , typename Vector::item44, typename Vector::item45
2008             , typename Vector::item46
2009             > type;
2010     };
2011 };
2012
2013 template<>
2014 struct pop_front_impl< aux::vector_tag<48> >
2015 {
2016     template< typename Vector > struct apply
2017     {
2018         typedef vector47<
2019               typename Vector::item1, typename Vector::item2
2020             , typename Vector::item3, typename Vector::item4
2021             , typename Vector::item5, typename Vector::item6
2022             , typename Vector::item7, typename Vector::item8
2023             , typename Vector::item9, typename Vector::item10
2024             , typename Vector::item11, typename Vector::item12
2025             , typename Vector::item13, typename Vector::item14
2026             , typename Vector::item15, typename Vector::item16
2027             , typename Vector::item17, typename Vector::item18
2028             , typename Vector::item19, typename Vector::item20
2029             , typename Vector::item21, typename Vector::item22
2030             , typename Vector::item23, typename Vector::item24
2031             , typename Vector::item25, typename Vector::item26
2032             , typename Vector::item27, typename Vector::item28
2033             , typename Vector::item29, typename Vector::item30
2034             , typename Vector::item31, typename Vector::item32
2035             , typename Vector::item33, typename Vector::item34
2036             , typename Vector::item35, typename Vector::item36
2037             , typename Vector::item37, typename Vector::item38
2038             , typename Vector::item39, typename Vector::item40
2039             , typename Vector::item41, typename Vector::item42
2040             , typename Vector::item43, typename Vector::item44
2041             , typename Vector::item45, typename Vector::item46
2042             , typename Vector::item47
2043             > type;
2044     };
2045 };
2046
2047 template<>
2048 struct push_back_impl< aux::vector_tag<47> >
2049 {
2050     template< typename Vector, typename T > struct apply
2051     {
2052         typedef vector48<
2053               typename Vector::item0, typename Vector::item1
2054             , typename Vector::item2, typename Vector::item3
2055             , typename Vector::item4, typename Vector::item5
2056             , typename Vector::item6, typename Vector::item7
2057             , typename Vector::item8, typename Vector::item9
2058             , typename Vector::item10, typename Vector::item11
2059             , typename Vector::item12, typename Vector::item13
2060             , typename Vector::item14, typename Vector::item15
2061             , typename Vector::item16, typename Vector::item17
2062             , typename Vector::item18, typename Vector::item19
2063             , typename Vector::item20, typename Vector::item21
2064             , typename Vector::item22, typename Vector::item23
2065             , typename Vector::item24, typename Vector::item25
2066             , typename Vector::item26, typename Vector::item27
2067             , typename Vector::item28, typename Vector::item29
2068             , typename Vector::item30, typename Vector::item31
2069             , typename Vector::item32, typename Vector::item33
2070             , typename Vector::item34, typename Vector::item35
2071             , typename Vector::item36, typename Vector::item37
2072             , typename Vector::item38, typename Vector::item39
2073             , typename Vector::item40, typename Vector::item41
2074             , typename Vector::item42, typename Vector::item43
2075             , typename Vector::item44, typename Vector::item45
2076             , typename Vector::item46
2077               ,
2078               T
2079             > type;
2080     };
2081 };
2082
2083 template<>
2084 struct pop_back_impl< aux::vector_tag<48> >
2085 {
2086     template< typename Vector > struct apply
2087     {
2088         typedef vector47<
2089               typename Vector::item0, typename Vector::item1
2090             , typename Vector::item2, typename Vector::item3
2091             , typename Vector::item4, typename Vector::item5
2092             , typename Vector::item6, typename Vector::item7
2093             , typename Vector::item8, typename Vector::item9
2094             , typename Vector::item10, typename Vector::item11
2095             , typename Vector::item12, typename Vector::item13
2096             , typename Vector::item14, typename Vector::item15
2097             , typename Vector::item16, typename Vector::item17
2098             , typename Vector::item18, typename Vector::item19
2099             , typename Vector::item20, typename Vector::item21
2100             , typename Vector::item22, typename Vector::item23
2101             , typename Vector::item24, typename Vector::item25
2102             , typename Vector::item26, typename Vector::item27
2103             , typename Vector::item28, typename Vector::item29
2104             , typename Vector::item30, typename Vector::item31
2105             , typename Vector::item32, typename Vector::item33
2106             , typename Vector::item34, typename Vector::item35
2107             , typename Vector::item36, typename Vector::item37
2108             , typename Vector::item38, typename Vector::item39
2109             , typename Vector::item40, typename Vector::item41
2110             , typename Vector::item42, typename Vector::item43
2111             , typename Vector::item44, typename Vector::item45
2112             , typename Vector::item46
2113             > type;
2114     };
2115 };
2116
2117 namespace aux {
2118 template<> struct v_at_impl<48>
2119 {
2120     template< typename V_ > struct result_
2121     {
2122         typedef typename V_::item48 type;
2123     };
2124 };
2125
2126 }
2127
2128 template<>
2129 struct at_impl< aux::vector_tag<48> >
2130 {
2131     template< typename V_, typename N > struct apply
2132     {
2133         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
2134             ::template result_<V_>::type type;
2135     };
2136 };
2137
2138 template<>
2139 struct front_impl< aux::vector_tag<48> >
2140 {
2141     template< typename Vector > struct apply
2142     {
2143         typedef typename Vector::item0 type;
2144     };
2145 };
2146
2147 template<>
2148 struct back_impl< aux::vector_tag<48> >
2149 {
2150     template< typename Vector > struct apply
2151     {
2152         typedef typename Vector::back type;
2153     };
2154 };
2155
2156 template<>
2157 struct empty_impl< aux::vector_tag<48> >
2158 {
2159     template< typename Vector > struct apply
2160         : false_
2161     {
2162     };
2163 };
2164
2165 template<>
2166 struct size_impl< aux::vector_tag<48> >
2167 {
2168     template< typename Vector > struct apply
2169         : long_<48>
2170     {
2171     };
2172 };
2173
2174 template<>
2175 struct O1_size_impl< aux::vector_tag<48> >
2176     : size_impl< aux::vector_tag<48> >
2177 {
2178 };
2179
2180 template<>
2181 struct clear_impl< aux::vector_tag<48> >
2182 {
2183     template< typename Vector > struct apply
2184     {
2185         typedef vector0<> type;
2186     };
2187 };
2188
2189 template<
2190       typename T0, typename T1, typename T2, typename T3, typename T4
2191     , typename T5, typename T6, typename T7, typename T8, typename T9
2192     , typename T10, typename T11, typename T12, typename T13, typename T14
2193     , typename T15, typename T16, typename T17, typename T18, typename T19
2194     , typename T20, typename T21, typename T22, typename T23, typename T24
2195     , typename T25, typename T26, typename T27, typename T28, typename T29
2196     , typename T30, typename T31, typename T32, typename T33, typename T34
2197     , typename T35, typename T36, typename T37, typename T38, typename T39
2198     , typename T40, typename T41, typename T42, typename T43, typename T44
2199     , typename T45, typename T46, typename T47, typename T48
2200     >
2201 struct vector49
2202 {
2203     typedef aux::vector_tag<49> tag;
2204     typedef vector49 type;
2205     typedef T0 item0;
2206     typedef T1 item1;
2207     typedef T2 item2;
2208     typedef T3 item3;
2209     typedef T4 item4;
2210     typedef T5 item5;
2211     typedef T6 item6;
2212     typedef T7 item7;
2213     typedef T8 item8;
2214     typedef T9 item9;
2215     typedef T10 item10;
2216     typedef T11 item11;
2217     typedef T12 item12;
2218     typedef T13 item13;
2219     typedef T14 item14;
2220     typedef T15 item15;
2221     typedef T16 item16;
2222     typedef T17 item17;
2223     typedef T18 item18;
2224     typedef T19 item19;
2225     typedef T20 item20;
2226     typedef T21 item21;
2227     typedef T22 item22;
2228     typedef T23 item23;
2229     typedef T24 item24;
2230     typedef T25 item25;
2231     typedef T26 item26;
2232     typedef T27 item27;
2233     typedef T28 item28;
2234     typedef T29 item29;
2235     typedef T30 item30;
2236     typedef T31 item31;
2237     typedef T32 item32;
2238     typedef T33 item33;
2239     typedef T34 item34;
2240     typedef T35 item35;
2241     typedef T36 item36;
2242     typedef T37 item37;
2243     typedef T38 item38;
2244     typedef T39 item39;
2245     typedef T40 item40;
2246     typedef T41 item41;
2247     typedef T42 item42;
2248     typedef T43 item43;
2249     typedef T44 item44;
2250     typedef T45 item45;
2251     typedef T46 item46;
2252     typedef T47 item47;
2253     typedef T48 item48;
2254     
2255
2256     typedef void_ item49;
2257     typedef T48 back;
2258     typedef v_iter< type,0 > begin;
2259     typedef v_iter< type,49 > end;
2260 };
2261
2262 template<>
2263 struct push_front_impl< aux::vector_tag<48> >
2264 {
2265     template< typename Vector, typename T > struct apply
2266     {
2267         typedef vector49<
2268               T
2269               ,
2270               typename Vector::item0, typename Vector::item1
2271             , typename Vector::item2, typename Vector::item3
2272             , typename Vector::item4, typename Vector::item5
2273             , typename Vector::item6, typename Vector::item7
2274             , typename Vector::item8, typename Vector::item9
2275             , typename Vector::item10, typename Vector::item11
2276             , typename Vector::item12, typename Vector::item13
2277             , typename Vector::item14, typename Vector::item15
2278             , typename Vector::item16, typename Vector::item17
2279             , typename Vector::item18, typename Vector::item19
2280             , typename Vector::item20, typename Vector::item21
2281             , typename Vector::item22, typename Vector::item23
2282             , typename Vector::item24, typename Vector::item25
2283             , typename Vector::item26, typename Vector::item27
2284             , typename Vector::item28, typename Vector::item29
2285             , typename Vector::item30, typename Vector::item31
2286             , typename Vector::item32, typename Vector::item33
2287             , typename Vector::item34, typename Vector::item35
2288             , typename Vector::item36, typename Vector::item37
2289             , typename Vector::item38, typename Vector::item39
2290             , typename Vector::item40, typename Vector::item41
2291             , typename Vector::item42, typename Vector::item43
2292             , typename Vector::item44, typename Vector::item45
2293             , typename Vector::item46, typename Vector::item47
2294             > type;
2295     };
2296 };
2297
2298 template<>
2299 struct pop_front_impl< aux::vector_tag<49> >
2300 {
2301     template< typename Vector > struct apply
2302     {
2303         typedef vector48<
2304               typename Vector::item1, typename Vector::item2
2305             , typename Vector::item3, typename Vector::item4
2306             , typename Vector::item5, typename Vector::item6
2307             , typename Vector::item7, typename Vector::item8
2308             , typename Vector::item9, typename Vector::item10
2309             , typename Vector::item11, typename Vector::item12
2310             , typename Vector::item13, typename Vector::item14
2311             , typename Vector::item15, typename Vector::item16
2312             , typename Vector::item17, typename Vector::item18
2313             , typename Vector::item19, typename Vector::item20
2314             , typename Vector::item21, typename Vector::item22
2315             , typename Vector::item23, typename Vector::item24
2316             , typename Vector::item25, typename Vector::item26
2317             , typename Vector::item27, typename Vector::item28
2318             , typename Vector::item29, typename Vector::item30
2319             , typename Vector::item31, typename Vector::item32
2320             , typename Vector::item33, typename Vector::item34
2321             , typename Vector::item35, typename Vector::item36
2322             , typename Vector::item37, typename Vector::item38
2323             , typename Vector::item39, typename Vector::item40
2324             , typename Vector::item41, typename Vector::item42
2325             , typename Vector::item43, typename Vector::item44
2326             , typename Vector::item45, typename Vector::item46
2327             , typename Vector::item47, typename Vector::item48
2328             > type;
2329     };
2330 };
2331
2332 template<>
2333 struct push_back_impl< aux::vector_tag<48> >
2334 {
2335     template< typename Vector, typename T > struct apply
2336     {
2337         typedef vector49<
2338               typename Vector::item0, typename Vector::item1
2339             , typename Vector::item2, typename Vector::item3
2340             , typename Vector::item4, typename Vector::item5
2341             , typename Vector::item6, typename Vector::item7
2342             , typename Vector::item8, typename Vector::item9
2343             , typename Vector::item10, typename Vector::item11
2344             , typename Vector::item12, typename Vector::item13
2345             , typename Vector::item14, typename Vector::item15
2346             , typename Vector::item16, typename Vector::item17
2347             , typename Vector::item18, typename Vector::item19
2348             , typename Vector::item20, typename Vector::item21
2349             , typename Vector::item22, typename Vector::item23
2350             , typename Vector::item24, typename Vector::item25
2351             , typename Vector::item26, typename Vector::item27
2352             , typename Vector::item28, typename Vector::item29
2353             , typename Vector::item30, typename Vector::item31
2354             , typename Vector::item32, typename Vector::item33
2355             , typename Vector::item34, typename Vector::item35
2356             , typename Vector::item36, typename Vector::item37
2357             , typename Vector::item38, typename Vector::item39
2358             , typename Vector::item40, typename Vector::item41
2359             , typename Vector::item42, typename Vector::item43
2360             , typename Vector::item44, typename Vector::item45
2361             , typename Vector::item46, typename Vector::item47
2362               ,
2363               T
2364             > type;
2365     };
2366 };
2367
2368 template<>
2369 struct pop_back_impl< aux::vector_tag<49> >
2370 {
2371     template< typename Vector > struct apply
2372     {
2373         typedef vector48<
2374               typename Vector::item0, typename Vector::item1
2375             , typename Vector::item2, typename Vector::item3
2376             , typename Vector::item4, typename Vector::item5
2377             , typename Vector::item6, typename Vector::item7
2378             , typename Vector::item8, typename Vector::item9
2379             , typename Vector::item10, typename Vector::item11
2380             , typename Vector::item12, typename Vector::item13
2381             , typename Vector::item14, typename Vector::item15
2382             , typename Vector::item16, typename Vector::item17
2383             , typename Vector::item18, typename Vector::item19
2384             , typename Vector::item20, typename Vector::item21
2385             , typename Vector::item22, typename Vector::item23
2386             , typename Vector::item24, typename Vector::item25
2387             , typename Vector::item26, typename Vector::item27
2388             , typename Vector::item28, typename Vector::item29
2389             , typename Vector::item30, typename Vector::item31
2390             , typename Vector::item32, typename Vector::item33
2391             , typename Vector::item34, typename Vector::item35
2392             , typename Vector::item36, typename Vector::item37
2393             , typename Vector::item38, typename Vector::item39
2394             , typename Vector::item40, typename Vector::item41
2395             , typename Vector::item42, typename Vector::item43
2396             , typename Vector::item44, typename Vector::item45
2397             , typename Vector::item46, typename Vector::item47
2398             > type;
2399     };
2400 };
2401
2402 namespace aux {
2403 template<> struct v_at_impl<49>
2404 {
2405     template< typename V_ > struct result_
2406     {
2407         typedef typename V_::item49 type;
2408     };
2409 };
2410
2411 }
2412
2413 template<>
2414 struct at_impl< aux::vector_tag<49> >
2415 {
2416     template< typename V_, typename N > struct apply
2417     {
2418         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
2419             ::template result_<V_>::type type;
2420     };
2421 };
2422
2423 template<>
2424 struct front_impl< aux::vector_tag<49> >
2425 {
2426     template< typename Vector > struct apply
2427     {
2428         typedef typename Vector::item0 type;
2429     };
2430 };
2431
2432 template<>
2433 struct back_impl< aux::vector_tag<49> >
2434 {
2435     template< typename Vector > struct apply
2436     {
2437         typedef typename Vector::back type;
2438     };
2439 };
2440
2441 template<>
2442 struct empty_impl< aux::vector_tag<49> >
2443 {
2444     template< typename Vector > struct apply
2445         : false_
2446     {
2447     };
2448 };
2449
2450 template<>
2451 struct size_impl< aux::vector_tag<49> >
2452 {
2453     template< typename Vector > struct apply
2454         : long_<49>
2455     {
2456     };
2457 };
2458
2459 template<>
2460 struct O1_size_impl< aux::vector_tag<49> >
2461     : size_impl< aux::vector_tag<49> >
2462 {
2463 };
2464
2465 template<>
2466 struct clear_impl< aux::vector_tag<49> >
2467 {
2468     template< typename Vector > struct apply
2469     {
2470         typedef vector0<> type;
2471     };
2472 };
2473
2474 template<
2475       typename T0, typename T1, typename T2, typename T3, typename T4
2476     , typename T5, typename T6, typename T7, typename T8, typename T9
2477     , typename T10, typename T11, typename T12, typename T13, typename T14
2478     , typename T15, typename T16, typename T17, typename T18, typename T19
2479     , typename T20, typename T21, typename T22, typename T23, typename T24
2480     , typename T25, typename T26, typename T27, typename T28, typename T29
2481     , typename T30, typename T31, typename T32, typename T33, typename T34
2482     , typename T35, typename T36, typename T37, typename T38, typename T39
2483     , typename T40, typename T41, typename T42, typename T43, typename T44
2484     , typename T45, typename T46, typename T47, typename T48, typename T49
2485     >
2486 struct vector50
2487 {
2488     typedef aux::vector_tag<50> tag;
2489     typedef vector50 type;
2490     typedef T0 item0;
2491     typedef T1 item1;
2492     typedef T2 item2;
2493     typedef T3 item3;
2494     typedef T4 item4;
2495     typedef T5 item5;
2496     typedef T6 item6;
2497     typedef T7 item7;
2498     typedef T8 item8;
2499     typedef T9 item9;
2500     typedef T10 item10;
2501     typedef T11 item11;
2502     typedef T12 item12;
2503     typedef T13 item13;
2504     typedef T14 item14;
2505     typedef T15 item15;
2506     typedef T16 item16;
2507     typedef T17 item17;
2508     typedef T18 item18;
2509     typedef T19 item19;
2510     typedef T20 item20;
2511     typedef T21 item21;
2512     typedef T22 item22;
2513     typedef T23 item23;
2514     typedef T24 item24;
2515     typedef T25 item25;
2516     typedef T26 item26;
2517     typedef T27 item27;
2518     typedef T28 item28;
2519     typedef T29 item29;
2520     typedef T30 item30;
2521     typedef T31 item31;
2522     typedef T32 item32;
2523     typedef T33 item33;
2524     typedef T34 item34;
2525     typedef T35 item35;
2526     typedef T36 item36;
2527     typedef T37 item37;
2528     typedef T38 item38;
2529     typedef T39 item39;
2530     typedef T40 item40;
2531     typedef T41 item41;
2532     typedef T42 item42;
2533     typedef T43 item43;
2534     typedef T44 item44;
2535     typedef T45 item45;
2536     typedef T46 item46;
2537     typedef T47 item47;
2538     typedef T48 item48;
2539     typedef T49 item49;
2540     
2541
2542     typedef void_ item50;
2543     typedef T49 back;
2544     typedef v_iter< type,0 > begin;
2545     typedef v_iter< type,50 > end;
2546 };
2547
2548 template<>
2549 struct push_front_impl< aux::vector_tag<49> >
2550 {
2551     template< typename Vector, typename T > struct apply
2552     {
2553         typedef vector50<
2554               T
2555               ,
2556               typename Vector::item0, typename Vector::item1
2557             , typename Vector::item2, typename Vector::item3
2558             , typename Vector::item4, typename Vector::item5
2559             , typename Vector::item6, typename Vector::item7
2560             , typename Vector::item8, typename Vector::item9
2561             , typename Vector::item10, typename Vector::item11
2562             , typename Vector::item12, typename Vector::item13
2563             , typename Vector::item14, typename Vector::item15
2564             , typename Vector::item16, typename Vector::item17
2565             , typename Vector::item18, typename Vector::item19
2566             , typename Vector::item20, typename Vector::item21
2567             , typename Vector::item22, typename Vector::item23
2568             , typename Vector::item24, typename Vector::item25
2569             , typename Vector::item26, typename Vector::item27
2570             , typename Vector::item28, typename Vector::item29
2571             , typename Vector::item30, typename Vector::item31
2572             , typename Vector::item32, typename Vector::item33
2573             , typename Vector::item34, typename Vector::item35
2574             , typename Vector::item36, typename Vector::item37
2575             , typename Vector::item38, typename Vector::item39
2576             , typename Vector::item40, typename Vector::item41
2577             , typename Vector::item42, typename Vector::item43
2578             , typename Vector::item44, typename Vector::item45
2579             , typename Vector::item46, typename Vector::item47
2580             , typename Vector::item48
2581             > type;
2582     };
2583 };
2584
2585 template<>
2586 struct pop_front_impl< aux::vector_tag<50> >
2587 {
2588     template< typename Vector > struct apply
2589     {
2590         typedef vector49<
2591               typename Vector::item1, typename Vector::item2
2592             , typename Vector::item3, typename Vector::item4
2593             , typename Vector::item5, typename Vector::item6
2594             , typename Vector::item7, typename Vector::item8
2595             , typename Vector::item9, typename Vector::item10
2596             , typename Vector::item11, typename Vector::item12
2597             , typename Vector::item13, typename Vector::item14
2598             , typename Vector::item15, typename Vector::item16
2599             , typename Vector::item17, typename Vector::item18
2600             , typename Vector::item19, typename Vector::item20
2601             , typename Vector::item21, typename Vector::item22
2602             , typename Vector::item23, typename Vector::item24
2603             , typename Vector::item25, typename Vector::item26
2604             , typename Vector::item27, typename Vector::item28
2605             , typename Vector::item29, typename Vector::item30
2606             , typename Vector::item31, typename Vector::item32
2607             , typename Vector::item33, typename Vector::item34
2608             , typename Vector::item35, typename Vector::item36
2609             , typename Vector::item37, typename Vector::item38
2610             , typename Vector::item39, typename Vector::item40
2611             , typename Vector::item41, typename Vector::item42
2612             , typename Vector::item43, typename Vector::item44
2613             , typename Vector::item45, typename Vector::item46
2614             , typename Vector::item47, typename Vector::item48
2615             , typename Vector::item49
2616             > type;
2617     };
2618 };
2619
2620 template<>
2621 struct push_back_impl< aux::vector_tag<49> >
2622 {
2623     template< typename Vector, typename T > struct apply
2624     {
2625         typedef vector50<
2626               typename Vector::item0, typename Vector::item1
2627             , typename Vector::item2, typename Vector::item3
2628             , typename Vector::item4, typename Vector::item5
2629             , typename Vector::item6, typename Vector::item7
2630             , typename Vector::item8, typename Vector::item9
2631             , typename Vector::item10, typename Vector::item11
2632             , typename Vector::item12, typename Vector::item13
2633             , typename Vector::item14, typename Vector::item15
2634             , typename Vector::item16, typename Vector::item17
2635             , typename Vector::item18, typename Vector::item19
2636             , typename Vector::item20, typename Vector::item21
2637             , typename Vector::item22, typename Vector::item23
2638             , typename Vector::item24, typename Vector::item25
2639             , typename Vector::item26, typename Vector::item27
2640             , typename Vector::item28, typename Vector::item29
2641             , typename Vector::item30, typename Vector::item31
2642             , typename Vector::item32, typename Vector::item33
2643             , typename Vector::item34, typename Vector::item35
2644             , typename Vector::item36, typename Vector::item37
2645             , typename Vector::item38, typename Vector::item39
2646             , typename Vector::item40, typename Vector::item41
2647             , typename Vector::item42, typename Vector::item43
2648             , typename Vector::item44, typename Vector::item45
2649             , typename Vector::item46, typename Vector::item47
2650             , typename Vector::item48
2651               ,
2652               T
2653             > type;
2654     };
2655 };
2656
2657 template<>
2658 struct pop_back_impl< aux::vector_tag<50> >
2659 {
2660     template< typename Vector > struct apply
2661     {
2662         typedef vector49<
2663               typename Vector::item0, typename Vector::item1
2664             , typename Vector::item2, typename Vector::item3
2665             , typename Vector::item4, typename Vector::item5
2666             , typename Vector::item6, typename Vector::item7
2667             , typename Vector::item8, typename Vector::item9
2668             , typename Vector::item10, typename Vector::item11
2669             , typename Vector::item12, typename Vector::item13
2670             , typename Vector::item14, typename Vector::item15
2671             , typename Vector::item16, typename Vector::item17
2672             , typename Vector::item18, typename Vector::item19
2673             , typename Vector::item20, typename Vector::item21
2674             , typename Vector::item22, typename Vector::item23
2675             , typename Vector::item24, typename Vector::item25
2676             , typename Vector::item26, typename Vector::item27
2677             , typename Vector::item28, typename Vector::item29
2678             , typename Vector::item30, typename Vector::item31
2679             , typename Vector::item32, typename Vector::item33
2680             , typename Vector::item34, typename Vector::item35
2681             , typename Vector::item36, typename Vector::item37
2682             , typename Vector::item38, typename Vector::item39
2683             , typename Vector::item40, typename Vector::item41
2684             , typename Vector::item42, typename Vector::item43
2685             , typename Vector::item44, typename Vector::item45
2686             , typename Vector::item46, typename Vector::item47
2687             , typename Vector::item48
2688             > type;
2689     };
2690 };
2691
2692 namespace aux {
2693 template<> struct v_at_impl<50>
2694 {
2695     template< typename V_ > struct result_
2696     {
2697         typedef typename V_::item50 type;
2698     };
2699 };
2700
2701 }
2702
2703 template<>
2704 struct at_impl< aux::vector_tag<50> >
2705 {
2706     template< typename V_, typename N > struct apply
2707     {
2708         typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
2709             ::template result_<V_>::type type;
2710     };
2711 };
2712
2713 template<>
2714 struct front_impl< aux::vector_tag<50> >
2715 {
2716     template< typename Vector > struct apply
2717     {
2718         typedef typename Vector::item0 type;
2719     };
2720 };
2721
2722 template<>
2723 struct back_impl< aux::vector_tag<50> >
2724 {
2725     template< typename Vector > struct apply
2726     {
2727         typedef typename Vector::back type;
2728     };
2729 };
2730
2731 template<>
2732 struct empty_impl< aux::vector_tag<50> >
2733 {
2734     template< typename Vector > struct apply
2735         : false_
2736     {
2737     };
2738 };
2739
2740 template<>
2741 struct size_impl< aux::vector_tag<50> >
2742 {
2743     template< typename Vector > struct apply
2744         : long_<50>
2745     {
2746     };
2747 };
2748
2749 template<>
2750 struct O1_size_impl< aux::vector_tag<50> >
2751     : size_impl< aux::vector_tag<50> >
2752 {
2753 };
2754
2755 template<>
2756 struct clear_impl< aux::vector_tag<50> >
2757 {
2758     template< typename Vector > struct apply
2759     {
2760         typedef vector0<> type;
2761     };
2762 };
2763
2764 }}