]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp
Logo AND Algorithmique Numérique Distribuée

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