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

Private GIT Repository
116f1125fa48703bf6288e36c4c0a343b09fd905
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / vector / aux_ / preprocessed / plain / 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 template< typename V >\r
107 struct v_at< V,11 >\r
108 {\r
109     typedef typename V::item11 type;\r
110 };\r
111 \r
112 template<\r
113       typename T0, typename T1, typename T2, typename T3, typename T4\r
114     , typename T5, typename T6, typename T7, typename T8, typename T9\r
115     , typename T10, typename T11\r
116     >\r
117 struct vector12\r
118 {\r
119     typedef aux::vector_tag<12> tag;\r
120     typedef vector12 type;\r
121     typedef T0 item0;\r
122     typedef T1 item1;\r
123     typedef T2 item2;\r
124     typedef T3 item3;\r
125     typedef T4 item4;\r
126     typedef T5 item5;\r
127     typedef T6 item6;\r
128     typedef T7 item7;\r
129     typedef T8 item8;\r
130     typedef T9 item9;\r
131     typedef T10 item10;\r
132     typedef T11 item11;\r
133     \r
134 \r
135     typedef void_ item12;\r
136     typedef T11 back;\r
137     typedef v_iter< type,0 > begin;\r
138     typedef v_iter< type,12 > end;\r
139 };\r
140 \r
141 template<>\r
142 struct push_front_impl< aux::vector_tag<11> >\r
143 {\r
144     template< typename Vector, typename T > struct apply\r
145     {\r
146         typedef vector12<\r
147               T\r
148               ,\r
149               typename Vector::item0, typename Vector::item1\r
150             , typename Vector::item2, typename Vector::item3\r
151             , typename Vector::item4, typename Vector::item5\r
152             , typename Vector::item6, typename Vector::item7\r
153             , typename Vector::item8, typename Vector::item9\r
154             , typename Vector::item10\r
155             > type;\r
156     };\r
157 };\r
158 \r
159 template<>\r
160 struct pop_front_impl< aux::vector_tag<12> >\r
161 {\r
162     template< typename Vector > struct apply\r
163     {\r
164         typedef vector11<\r
165               typename Vector::item1, typename Vector::item2\r
166             , typename Vector::item3, typename Vector::item4\r
167             , typename Vector::item5, typename Vector::item6\r
168             , typename Vector::item7, typename Vector::item8\r
169             , typename Vector::item9, typename Vector::item10\r
170             , typename Vector::item11\r
171             > type;\r
172     };\r
173 };\r
174 \r
175 template<>\r
176 struct push_back_impl< aux::vector_tag<11> >\r
177 {\r
178     template< typename Vector, typename T > struct apply\r
179     {\r
180         typedef vector12<\r
181               typename Vector::item0, typename Vector::item1\r
182             , typename Vector::item2, typename Vector::item3\r
183             , typename Vector::item4, typename Vector::item5\r
184             , typename Vector::item6, typename Vector::item7\r
185             , typename Vector::item8, typename Vector::item9\r
186             , typename Vector::item10\r
187               ,\r
188               T\r
189             > type;\r
190     };\r
191 };\r
192 \r
193 template<>\r
194 struct pop_back_impl< aux::vector_tag<12> >\r
195 {\r
196     template< typename Vector > struct apply\r
197     {\r
198         typedef vector11<\r
199               typename Vector::item0, typename Vector::item1\r
200             , typename Vector::item2, typename Vector::item3\r
201             , typename Vector::item4, typename Vector::item5\r
202             , typename Vector::item6, typename Vector::item7\r
203             , typename Vector::item8, typename Vector::item9\r
204             , typename Vector::item10\r
205             > type;\r
206     };\r
207 };\r
208 \r
209 template< typename V >\r
210 struct v_at< V,12 >\r
211 {\r
212     typedef typename V::item12 type;\r
213 };\r
214 \r
215 template<\r
216       typename T0, typename T1, typename T2, typename T3, typename T4\r
217     , typename T5, typename T6, typename T7, typename T8, typename T9\r
218     , typename T10, typename T11, typename T12\r
219     >\r
220 struct vector13\r
221 {\r
222     typedef aux::vector_tag<13> tag;\r
223     typedef vector13 type;\r
224     typedef T0 item0;\r
225     typedef T1 item1;\r
226     typedef T2 item2;\r
227     typedef T3 item3;\r
228     typedef T4 item4;\r
229     typedef T5 item5;\r
230     typedef T6 item6;\r
231     typedef T7 item7;\r
232     typedef T8 item8;\r
233     typedef T9 item9;\r
234     typedef T10 item10;\r
235     typedef T11 item11;\r
236     typedef T12 item12;\r
237     \r
238 \r
239     typedef void_ item13;\r
240     typedef T12 back;\r
241     typedef v_iter< type,0 > begin;\r
242     typedef v_iter< type,13 > end;\r
243 };\r
244 \r
245 template<>\r
246 struct push_front_impl< aux::vector_tag<12> >\r
247 {\r
248     template< typename Vector, typename T > struct apply\r
249     {\r
250         typedef vector13<\r
251               T\r
252               ,\r
253               typename Vector::item0, typename Vector::item1\r
254             , typename Vector::item2, typename Vector::item3\r
255             , typename Vector::item4, typename Vector::item5\r
256             , typename Vector::item6, typename Vector::item7\r
257             , typename Vector::item8, typename Vector::item9\r
258             , typename Vector::item10, typename Vector::item11\r
259             > type;\r
260     };\r
261 };\r
262 \r
263 template<>\r
264 struct pop_front_impl< aux::vector_tag<13> >\r
265 {\r
266     template< typename Vector > struct apply\r
267     {\r
268         typedef vector12<\r
269               typename Vector::item1, typename Vector::item2\r
270             , typename Vector::item3, typename Vector::item4\r
271             , typename Vector::item5, typename Vector::item6\r
272             , typename Vector::item7, typename Vector::item8\r
273             , typename Vector::item9, typename Vector::item10\r
274             , typename Vector::item11, typename Vector::item12\r
275             > type;\r
276     };\r
277 };\r
278 \r
279 template<>\r
280 struct push_back_impl< aux::vector_tag<12> >\r
281 {\r
282     template< typename Vector, typename T > struct apply\r
283     {\r
284         typedef vector13<\r
285               typename Vector::item0, typename Vector::item1\r
286             , typename Vector::item2, typename Vector::item3\r
287             , typename Vector::item4, typename Vector::item5\r
288             , typename Vector::item6, typename Vector::item7\r
289             , typename Vector::item8, typename Vector::item9\r
290             , typename Vector::item10, typename Vector::item11\r
291               ,\r
292               T\r
293             > type;\r
294     };\r
295 };\r
296 \r
297 template<>\r
298 struct pop_back_impl< aux::vector_tag<13> >\r
299 {\r
300     template< typename Vector > struct apply\r
301     {\r
302         typedef vector12<\r
303               typename Vector::item0, typename Vector::item1\r
304             , typename Vector::item2, typename Vector::item3\r
305             , typename Vector::item4, typename Vector::item5\r
306             , typename Vector::item6, typename Vector::item7\r
307             , typename Vector::item8, typename Vector::item9\r
308             , typename Vector::item10, typename Vector::item11\r
309             > type;\r
310     };\r
311 };\r
312 \r
313 template< typename V >\r
314 struct v_at< V,13 >\r
315 {\r
316     typedef typename V::item13 type;\r
317 };\r
318 \r
319 template<\r
320       typename T0, typename T1, typename T2, typename T3, typename T4\r
321     , typename T5, typename T6, typename T7, typename T8, typename T9\r
322     , typename T10, typename T11, typename T12, typename T13\r
323     >\r
324 struct vector14\r
325 {\r
326     typedef aux::vector_tag<14> tag;\r
327     typedef vector14 type;\r
328     typedef T0 item0;\r
329     typedef T1 item1;\r
330     typedef T2 item2;\r
331     typedef T3 item3;\r
332     typedef T4 item4;\r
333     typedef T5 item5;\r
334     typedef T6 item6;\r
335     typedef T7 item7;\r
336     typedef T8 item8;\r
337     typedef T9 item9;\r
338     typedef T10 item10;\r
339     typedef T11 item11;\r
340     typedef T12 item12;\r
341     typedef T13 item13;\r
342     \r
343 \r
344     typedef void_ item14;\r
345     typedef T13 back;\r
346     typedef v_iter< type,0 > begin;\r
347     typedef v_iter< type,14 > end;\r
348 };\r
349 \r
350 template<>\r
351 struct push_front_impl< aux::vector_tag<13> >\r
352 {\r
353     template< typename Vector, typename T > struct apply\r
354     {\r
355         typedef vector14<\r
356               T\r
357               ,\r
358               typename Vector::item0, typename Vector::item1\r
359             , typename Vector::item2, typename Vector::item3\r
360             , typename Vector::item4, typename Vector::item5\r
361             , typename Vector::item6, typename Vector::item7\r
362             , typename Vector::item8, typename Vector::item9\r
363             , typename Vector::item10, typename Vector::item11\r
364             , typename Vector::item12\r
365             > type;\r
366     };\r
367 };\r
368 \r
369 template<>\r
370 struct pop_front_impl< aux::vector_tag<14> >\r
371 {\r
372     template< typename Vector > struct apply\r
373     {\r
374         typedef vector13<\r
375               typename Vector::item1, typename Vector::item2\r
376             , typename Vector::item3, typename Vector::item4\r
377             , typename Vector::item5, typename Vector::item6\r
378             , typename Vector::item7, typename Vector::item8\r
379             , typename Vector::item9, typename Vector::item10\r
380             , typename Vector::item11, typename Vector::item12\r
381             , typename Vector::item13\r
382             > type;\r
383     };\r
384 };\r
385 \r
386 template<>\r
387 struct push_back_impl< aux::vector_tag<13> >\r
388 {\r
389     template< typename Vector, typename T > struct apply\r
390     {\r
391         typedef vector14<\r
392               typename Vector::item0, typename Vector::item1\r
393             , typename Vector::item2, typename Vector::item3\r
394             , typename Vector::item4, typename Vector::item5\r
395             , typename Vector::item6, typename Vector::item7\r
396             , typename Vector::item8, typename Vector::item9\r
397             , typename Vector::item10, typename Vector::item11\r
398             , typename Vector::item12\r
399               ,\r
400               T\r
401             > type;\r
402     };\r
403 };\r
404 \r
405 template<>\r
406 struct pop_back_impl< aux::vector_tag<14> >\r
407 {\r
408     template< typename Vector > struct apply\r
409     {\r
410         typedef vector13<\r
411               typename Vector::item0, typename Vector::item1\r
412             , typename Vector::item2, typename Vector::item3\r
413             , typename Vector::item4, typename Vector::item5\r
414             , typename Vector::item6, typename Vector::item7\r
415             , typename Vector::item8, typename Vector::item9\r
416             , typename Vector::item10, typename Vector::item11\r
417             , typename Vector::item12\r
418             > type;\r
419     };\r
420 };\r
421 \r
422 template< typename V >\r
423 struct v_at< V,14 >\r
424 {\r
425     typedef typename V::item14 type;\r
426 };\r
427 \r
428 template<\r
429       typename T0, typename T1, typename T2, typename T3, typename T4\r
430     , typename T5, typename T6, typename T7, typename T8, typename T9\r
431     , typename T10, typename T11, typename T12, typename T13, typename T14\r
432     >\r
433 struct vector15\r
434 {\r
435     typedef aux::vector_tag<15> tag;\r
436     typedef vector15 type;\r
437     typedef T0 item0;\r
438     typedef T1 item1;\r
439     typedef T2 item2;\r
440     typedef T3 item3;\r
441     typedef T4 item4;\r
442     typedef T5 item5;\r
443     typedef T6 item6;\r
444     typedef T7 item7;\r
445     typedef T8 item8;\r
446     typedef T9 item9;\r
447     typedef T10 item10;\r
448     typedef T11 item11;\r
449     typedef T12 item12;\r
450     typedef T13 item13;\r
451     typedef T14 item14;\r
452     \r
453 \r
454     typedef void_ item15;\r
455     typedef T14 back;\r
456     typedef v_iter< type,0 > begin;\r
457     typedef v_iter< type,15 > end;\r
458 };\r
459 \r
460 template<>\r
461 struct push_front_impl< aux::vector_tag<14> >\r
462 {\r
463     template< typename Vector, typename T > struct apply\r
464     {\r
465         typedef vector15<\r
466               T\r
467               ,\r
468               typename Vector::item0, typename Vector::item1\r
469             , typename Vector::item2, typename Vector::item3\r
470             , typename Vector::item4, typename Vector::item5\r
471             , typename Vector::item6, typename Vector::item7\r
472             , typename Vector::item8, typename Vector::item9\r
473             , typename Vector::item10, typename Vector::item11\r
474             , typename Vector::item12, typename Vector::item13\r
475             > type;\r
476     };\r
477 };\r
478 \r
479 template<>\r
480 struct pop_front_impl< aux::vector_tag<15> >\r
481 {\r
482     template< typename Vector > struct apply\r
483     {\r
484         typedef vector14<\r
485               typename Vector::item1, typename Vector::item2\r
486             , typename Vector::item3, typename Vector::item4\r
487             , typename Vector::item5, typename Vector::item6\r
488             , typename Vector::item7, typename Vector::item8\r
489             , typename Vector::item9, typename Vector::item10\r
490             , typename Vector::item11, typename Vector::item12\r
491             , typename Vector::item13, typename Vector::item14\r
492             > type;\r
493     };\r
494 };\r
495 \r
496 template<>\r
497 struct push_back_impl< aux::vector_tag<14> >\r
498 {\r
499     template< typename Vector, typename T > struct apply\r
500     {\r
501         typedef vector15<\r
502               typename Vector::item0, typename Vector::item1\r
503             , typename Vector::item2, typename Vector::item3\r
504             , typename Vector::item4, typename Vector::item5\r
505             , typename Vector::item6, typename Vector::item7\r
506             , typename Vector::item8, typename Vector::item9\r
507             , typename Vector::item10, typename Vector::item11\r
508             , typename Vector::item12, typename Vector::item13\r
509               ,\r
510               T\r
511             > type;\r
512     };\r
513 };\r
514 \r
515 template<>\r
516 struct pop_back_impl< aux::vector_tag<15> >\r
517 {\r
518     template< typename Vector > struct apply\r
519     {\r
520         typedef vector14<\r
521               typename Vector::item0, typename Vector::item1\r
522             , typename Vector::item2, typename Vector::item3\r
523             , typename Vector::item4, typename Vector::item5\r
524             , typename Vector::item6, typename Vector::item7\r
525             , typename Vector::item8, typename Vector::item9\r
526             , typename Vector::item10, typename Vector::item11\r
527             , typename Vector::item12, typename Vector::item13\r
528             > type;\r
529     };\r
530 };\r
531 \r
532 template< typename V >\r
533 struct v_at< V,15 >\r
534 {\r
535     typedef typename V::item15 type;\r
536 };\r
537 \r
538 template<\r
539       typename T0, typename T1, typename T2, typename T3, typename T4\r
540     , typename T5, typename T6, typename T7, typename T8, typename T9\r
541     , typename T10, typename T11, typename T12, typename T13, typename T14\r
542     , typename T15\r
543     >\r
544 struct vector16\r
545 {\r
546     typedef aux::vector_tag<16> tag;\r
547     typedef vector16 type;\r
548     typedef T0 item0;\r
549     typedef T1 item1;\r
550     typedef T2 item2;\r
551     typedef T3 item3;\r
552     typedef T4 item4;\r
553     typedef T5 item5;\r
554     typedef T6 item6;\r
555     typedef T7 item7;\r
556     typedef T8 item8;\r
557     typedef T9 item9;\r
558     typedef T10 item10;\r
559     typedef T11 item11;\r
560     typedef T12 item12;\r
561     typedef T13 item13;\r
562     typedef T14 item14;\r
563     typedef T15 item15;\r
564     \r
565 \r
566     typedef void_ item16;\r
567     typedef T15 back;\r
568     typedef v_iter< type,0 > begin;\r
569     typedef v_iter< type,16 > end;\r
570 };\r
571 \r
572 template<>\r
573 struct push_front_impl< aux::vector_tag<15> >\r
574 {\r
575     template< typename Vector, typename T > struct apply\r
576     {\r
577         typedef vector16<\r
578               T\r
579               ,\r
580               typename Vector::item0, typename Vector::item1\r
581             , typename Vector::item2, typename Vector::item3\r
582             , typename Vector::item4, typename Vector::item5\r
583             , typename Vector::item6, typename Vector::item7\r
584             , typename Vector::item8, typename Vector::item9\r
585             , typename Vector::item10, typename Vector::item11\r
586             , typename Vector::item12, typename Vector::item13\r
587             , typename Vector::item14\r
588             > type;\r
589     };\r
590 };\r
591 \r
592 template<>\r
593 struct pop_front_impl< aux::vector_tag<16> >\r
594 {\r
595     template< typename Vector > struct apply\r
596     {\r
597         typedef vector15<\r
598               typename Vector::item1, typename Vector::item2\r
599             , typename Vector::item3, typename Vector::item4\r
600             , typename Vector::item5, typename Vector::item6\r
601             , typename Vector::item7, typename Vector::item8\r
602             , typename Vector::item9, typename Vector::item10\r
603             , typename Vector::item11, typename Vector::item12\r
604             , typename Vector::item13, typename Vector::item14\r
605             , typename Vector::item15\r
606             > type;\r
607     };\r
608 };\r
609 \r
610 template<>\r
611 struct push_back_impl< aux::vector_tag<15> >\r
612 {\r
613     template< typename Vector, typename T > struct apply\r
614     {\r
615         typedef vector16<\r
616               typename Vector::item0, typename Vector::item1\r
617             , typename Vector::item2, typename Vector::item3\r
618             , typename Vector::item4, typename Vector::item5\r
619             , typename Vector::item6, typename Vector::item7\r
620             , typename Vector::item8, typename Vector::item9\r
621             , typename Vector::item10, typename Vector::item11\r
622             , typename Vector::item12, typename Vector::item13\r
623             , typename Vector::item14\r
624               ,\r
625               T\r
626             > type;\r
627     };\r
628 };\r
629 \r
630 template<>\r
631 struct pop_back_impl< aux::vector_tag<16> >\r
632 {\r
633     template< typename Vector > struct apply\r
634     {\r
635         typedef vector15<\r
636               typename Vector::item0, typename Vector::item1\r
637             , typename Vector::item2, typename Vector::item3\r
638             , typename Vector::item4, typename Vector::item5\r
639             , typename Vector::item6, typename Vector::item7\r
640             , typename Vector::item8, typename Vector::item9\r
641             , typename Vector::item10, typename Vector::item11\r
642             , typename Vector::item12, typename Vector::item13\r
643             , typename Vector::item14\r
644             > type;\r
645     };\r
646 };\r
647 \r
648 template< typename V >\r
649 struct v_at< V,16 >\r
650 {\r
651     typedef typename V::item16 type;\r
652 };\r
653 \r
654 template<\r
655       typename T0, typename T1, typename T2, typename T3, typename T4\r
656     , typename T5, typename T6, typename T7, typename T8, typename T9\r
657     , typename T10, typename T11, typename T12, typename T13, typename T14\r
658     , typename T15, typename T16\r
659     >\r
660 struct vector17\r
661 {\r
662     typedef aux::vector_tag<17> tag;\r
663     typedef vector17 type;\r
664     typedef T0 item0;\r
665     typedef T1 item1;\r
666     typedef T2 item2;\r
667     typedef T3 item3;\r
668     typedef T4 item4;\r
669     typedef T5 item5;\r
670     typedef T6 item6;\r
671     typedef T7 item7;\r
672     typedef T8 item8;\r
673     typedef T9 item9;\r
674     typedef T10 item10;\r
675     typedef T11 item11;\r
676     typedef T12 item12;\r
677     typedef T13 item13;\r
678     typedef T14 item14;\r
679     typedef T15 item15;\r
680     typedef T16 item16;\r
681     \r
682 \r
683     typedef void_ item17;\r
684     typedef T16 back;\r
685     typedef v_iter< type,0 > begin;\r
686     typedef v_iter< type,17 > end;\r
687 };\r
688 \r
689 template<>\r
690 struct push_front_impl< aux::vector_tag<16> >\r
691 {\r
692     template< typename Vector, typename T > struct apply\r
693     {\r
694         typedef vector17<\r
695               T\r
696               ,\r
697               typename Vector::item0, typename Vector::item1\r
698             , typename Vector::item2, typename Vector::item3\r
699             , typename Vector::item4, typename Vector::item5\r
700             , typename Vector::item6, typename Vector::item7\r
701             , typename Vector::item8, typename Vector::item9\r
702             , typename Vector::item10, typename Vector::item11\r
703             , typename Vector::item12, typename Vector::item13\r
704             , typename Vector::item14, typename Vector::item15\r
705             > type;\r
706     };\r
707 };\r
708 \r
709 template<>\r
710 struct pop_front_impl< aux::vector_tag<17> >\r
711 {\r
712     template< typename Vector > struct apply\r
713     {\r
714         typedef vector16<\r
715               typename Vector::item1, typename Vector::item2\r
716             , typename Vector::item3, typename Vector::item4\r
717             , typename Vector::item5, typename Vector::item6\r
718             , typename Vector::item7, typename Vector::item8\r
719             , typename Vector::item9, typename Vector::item10\r
720             , typename Vector::item11, typename Vector::item12\r
721             , typename Vector::item13, typename Vector::item14\r
722             , typename Vector::item15, typename Vector::item16\r
723             > type;\r
724     };\r
725 };\r
726 \r
727 template<>\r
728 struct push_back_impl< aux::vector_tag<16> >\r
729 {\r
730     template< typename Vector, typename T > struct apply\r
731     {\r
732         typedef vector17<\r
733               typename Vector::item0, typename Vector::item1\r
734             , typename Vector::item2, typename Vector::item3\r
735             , typename Vector::item4, typename Vector::item5\r
736             , typename Vector::item6, typename Vector::item7\r
737             , typename Vector::item8, typename Vector::item9\r
738             , typename Vector::item10, typename Vector::item11\r
739             , typename Vector::item12, typename Vector::item13\r
740             , typename Vector::item14, typename Vector::item15\r
741               ,\r
742               T\r
743             > type;\r
744     };\r
745 };\r
746 \r
747 template<>\r
748 struct pop_back_impl< aux::vector_tag<17> >\r
749 {\r
750     template< typename Vector > struct apply\r
751     {\r
752         typedef vector16<\r
753               typename Vector::item0, typename Vector::item1\r
754             , typename Vector::item2, typename Vector::item3\r
755             , typename Vector::item4, typename Vector::item5\r
756             , typename Vector::item6, typename Vector::item7\r
757             , typename Vector::item8, typename Vector::item9\r
758             , typename Vector::item10, typename Vector::item11\r
759             , typename Vector::item12, typename Vector::item13\r
760             , typename Vector::item14, typename Vector::item15\r
761             > type;\r
762     };\r
763 };\r
764 \r
765 template< typename V >\r
766 struct v_at< V,17 >\r
767 {\r
768     typedef typename V::item17 type;\r
769 };\r
770 \r
771 template<\r
772       typename T0, typename T1, typename T2, typename T3, typename T4\r
773     , typename T5, typename T6, typename T7, typename T8, typename T9\r
774     , typename T10, typename T11, typename T12, typename T13, typename T14\r
775     , typename T15, typename T16, typename T17\r
776     >\r
777 struct vector18\r
778 {\r
779     typedef aux::vector_tag<18> tag;\r
780     typedef vector18 type;\r
781     typedef T0 item0;\r
782     typedef T1 item1;\r
783     typedef T2 item2;\r
784     typedef T3 item3;\r
785     typedef T4 item4;\r
786     typedef T5 item5;\r
787     typedef T6 item6;\r
788     typedef T7 item7;\r
789     typedef T8 item8;\r
790     typedef T9 item9;\r
791     typedef T10 item10;\r
792     typedef T11 item11;\r
793     typedef T12 item12;\r
794     typedef T13 item13;\r
795     typedef T14 item14;\r
796     typedef T15 item15;\r
797     typedef T16 item16;\r
798     typedef T17 item17;\r
799     \r
800 \r
801     typedef void_ item18;\r
802     typedef T17 back;\r
803     typedef v_iter< type,0 > begin;\r
804     typedef v_iter< type,18 > end;\r
805 };\r
806 \r
807 template<>\r
808 struct push_front_impl< aux::vector_tag<17> >\r
809 {\r
810     template< typename Vector, typename T > struct apply\r
811     {\r
812         typedef vector18<\r
813               T\r
814               ,\r
815               typename Vector::item0, typename Vector::item1\r
816             , typename Vector::item2, typename Vector::item3\r
817             , typename Vector::item4, typename Vector::item5\r
818             , typename Vector::item6, typename Vector::item7\r
819             , typename Vector::item8, typename Vector::item9\r
820             , typename Vector::item10, typename Vector::item11\r
821             , typename Vector::item12, typename Vector::item13\r
822             , typename Vector::item14, typename Vector::item15\r
823             , typename Vector::item16\r
824             > type;\r
825     };\r
826 };\r
827 \r
828 template<>\r
829 struct pop_front_impl< aux::vector_tag<18> >\r
830 {\r
831     template< typename Vector > struct apply\r
832     {\r
833         typedef vector17<\r
834               typename Vector::item1, typename Vector::item2\r
835             , typename Vector::item3, typename Vector::item4\r
836             , typename Vector::item5, typename Vector::item6\r
837             , typename Vector::item7, typename Vector::item8\r
838             , typename Vector::item9, typename Vector::item10\r
839             , typename Vector::item11, typename Vector::item12\r
840             , typename Vector::item13, typename Vector::item14\r
841             , typename Vector::item15, typename Vector::item16\r
842             , typename Vector::item17\r
843             > type;\r
844     };\r
845 };\r
846 \r
847 template<>\r
848 struct push_back_impl< aux::vector_tag<17> >\r
849 {\r
850     template< typename Vector, typename T > struct apply\r
851     {\r
852         typedef vector18<\r
853               typename Vector::item0, typename Vector::item1\r
854             , typename Vector::item2, typename Vector::item3\r
855             , typename Vector::item4, typename Vector::item5\r
856             , typename Vector::item6, typename Vector::item7\r
857             , typename Vector::item8, typename Vector::item9\r
858             , typename Vector::item10, typename Vector::item11\r
859             , typename Vector::item12, typename Vector::item13\r
860             , typename Vector::item14, typename Vector::item15\r
861             , typename Vector::item16\r
862               ,\r
863               T\r
864             > type;\r
865     };\r
866 };\r
867 \r
868 template<>\r
869 struct pop_back_impl< aux::vector_tag<18> >\r
870 {\r
871     template< typename Vector > struct apply\r
872     {\r
873         typedef vector17<\r
874               typename Vector::item0, typename Vector::item1\r
875             , typename Vector::item2, typename Vector::item3\r
876             , typename Vector::item4, typename Vector::item5\r
877             , typename Vector::item6, typename Vector::item7\r
878             , typename Vector::item8, typename Vector::item9\r
879             , typename Vector::item10, typename Vector::item11\r
880             , typename Vector::item12, typename Vector::item13\r
881             , typename Vector::item14, typename Vector::item15\r
882             , typename Vector::item16\r
883             > type;\r
884     };\r
885 };\r
886 \r
887 template< typename V >\r
888 struct v_at< V,18 >\r
889 {\r
890     typedef typename V::item18 type;\r
891 };\r
892 \r
893 template<\r
894       typename T0, typename T1, typename T2, typename T3, typename T4\r
895     , typename T5, typename T6, typename T7, typename T8, typename T9\r
896     , typename T10, typename T11, typename T12, typename T13, typename T14\r
897     , typename T15, typename T16, typename T17, typename T18\r
898     >\r
899 struct vector19\r
900 {\r
901     typedef aux::vector_tag<19> tag;\r
902     typedef vector19 type;\r
903     typedef T0 item0;\r
904     typedef T1 item1;\r
905     typedef T2 item2;\r
906     typedef T3 item3;\r
907     typedef T4 item4;\r
908     typedef T5 item5;\r
909     typedef T6 item6;\r
910     typedef T7 item7;\r
911     typedef T8 item8;\r
912     typedef T9 item9;\r
913     typedef T10 item10;\r
914     typedef T11 item11;\r
915     typedef T12 item12;\r
916     typedef T13 item13;\r
917     typedef T14 item14;\r
918     typedef T15 item15;\r
919     typedef T16 item16;\r
920     typedef T17 item17;\r
921     typedef T18 item18;\r
922     \r
923 \r
924     typedef void_ item19;\r
925     typedef T18 back;\r
926     typedef v_iter< type,0 > begin;\r
927     typedef v_iter< type,19 > end;\r
928 };\r
929 \r
930 template<>\r
931 struct push_front_impl< aux::vector_tag<18> >\r
932 {\r
933     template< typename Vector, typename T > struct apply\r
934     {\r
935         typedef vector19<\r
936               T\r
937               ,\r
938               typename Vector::item0, typename Vector::item1\r
939             , typename Vector::item2, typename Vector::item3\r
940             , typename Vector::item4, typename Vector::item5\r
941             , typename Vector::item6, typename Vector::item7\r
942             , typename Vector::item8, typename Vector::item9\r
943             , typename Vector::item10, typename Vector::item11\r
944             , typename Vector::item12, typename Vector::item13\r
945             , typename Vector::item14, typename Vector::item15\r
946             , typename Vector::item16, typename Vector::item17\r
947             > type;\r
948     };\r
949 };\r
950 \r
951 template<>\r
952 struct pop_front_impl< aux::vector_tag<19> >\r
953 {\r
954     template< typename Vector > struct apply\r
955     {\r
956         typedef vector18<\r
957               typename Vector::item1, typename Vector::item2\r
958             , typename Vector::item3, typename Vector::item4\r
959             , typename Vector::item5, typename Vector::item6\r
960             , typename Vector::item7, typename Vector::item8\r
961             , typename Vector::item9, typename Vector::item10\r
962             , typename Vector::item11, typename Vector::item12\r
963             , typename Vector::item13, typename Vector::item14\r
964             , typename Vector::item15, typename Vector::item16\r
965             , typename Vector::item17, typename Vector::item18\r
966             > type;\r
967     };\r
968 };\r
969 \r
970 template<>\r
971 struct push_back_impl< aux::vector_tag<18> >\r
972 {\r
973     template< typename Vector, typename T > struct apply\r
974     {\r
975         typedef vector19<\r
976               typename Vector::item0, typename Vector::item1\r
977             , typename Vector::item2, typename Vector::item3\r
978             , typename Vector::item4, typename Vector::item5\r
979             , typename Vector::item6, typename Vector::item7\r
980             , typename Vector::item8, typename Vector::item9\r
981             , typename Vector::item10, typename Vector::item11\r
982             , typename Vector::item12, typename Vector::item13\r
983             , typename Vector::item14, typename Vector::item15\r
984             , typename Vector::item16, typename Vector::item17\r
985               ,\r
986               T\r
987             > type;\r
988     };\r
989 };\r
990 \r
991 template<>\r
992 struct pop_back_impl< aux::vector_tag<19> >\r
993 {\r
994     template< typename Vector > struct apply\r
995     {\r
996         typedef vector18<\r
997               typename Vector::item0, typename Vector::item1\r
998             , typename Vector::item2, typename Vector::item3\r
999             , typename Vector::item4, typename Vector::item5\r
1000             , typename Vector::item6, typename Vector::item7\r
1001             , typename Vector::item8, typename Vector::item9\r
1002             , typename Vector::item10, typename Vector::item11\r
1003             , typename Vector::item12, typename Vector::item13\r
1004             , typename Vector::item14, typename Vector::item15\r
1005             , typename Vector::item16, typename Vector::item17\r
1006             > type;\r
1007     };\r
1008 };\r
1009 \r
1010 template< typename V >\r
1011 struct v_at< V,19 >\r
1012 {\r
1013     typedef typename V::item19 type;\r
1014 };\r
1015 \r
1016 template<\r
1017       typename T0, typename T1, typename T2, typename T3, typename T4\r
1018     , typename T5, typename T6, typename T7, typename T8, typename T9\r
1019     , typename T10, typename T11, typename T12, typename T13, typename T14\r
1020     , typename T15, typename T16, typename T17, typename T18, typename T19\r
1021     >\r
1022 struct vector20\r
1023 {\r
1024     typedef aux::vector_tag<20> tag;\r
1025     typedef vector20 type;\r
1026     typedef T0 item0;\r
1027     typedef T1 item1;\r
1028     typedef T2 item2;\r
1029     typedef T3 item3;\r
1030     typedef T4 item4;\r
1031     typedef T5 item5;\r
1032     typedef T6 item6;\r
1033     typedef T7 item7;\r
1034     typedef T8 item8;\r
1035     typedef T9 item9;\r
1036     typedef T10 item10;\r
1037     typedef T11 item11;\r
1038     typedef T12 item12;\r
1039     typedef T13 item13;\r
1040     typedef T14 item14;\r
1041     typedef T15 item15;\r
1042     typedef T16 item16;\r
1043     typedef T17 item17;\r
1044     typedef T18 item18;\r
1045     typedef T19 item19;\r
1046     \r
1047 \r
1048     typedef void_ item20;\r
1049     typedef T19 back;\r
1050     typedef v_iter< type,0 > begin;\r
1051     typedef v_iter< type,20 > end;\r
1052 };\r
1053 \r
1054 template<>\r
1055 struct push_front_impl< aux::vector_tag<19> >\r
1056 {\r
1057     template< typename Vector, typename T > struct apply\r
1058     {\r
1059         typedef vector20<\r
1060               T\r
1061               ,\r
1062               typename Vector::item0, typename Vector::item1\r
1063             , typename Vector::item2, typename Vector::item3\r
1064             , typename Vector::item4, typename Vector::item5\r
1065             , typename Vector::item6, typename Vector::item7\r
1066             , typename Vector::item8, typename Vector::item9\r
1067             , typename Vector::item10, typename Vector::item11\r
1068             , typename Vector::item12, typename Vector::item13\r
1069             , typename Vector::item14, typename Vector::item15\r
1070             , typename Vector::item16, typename Vector::item17\r
1071             , typename Vector::item18\r
1072             > type;\r
1073     };\r
1074 };\r
1075 \r
1076 template<>\r
1077 struct pop_front_impl< aux::vector_tag<20> >\r
1078 {\r
1079     template< typename Vector > struct apply\r
1080     {\r
1081         typedef vector19<\r
1082               typename Vector::item1, typename Vector::item2\r
1083             , typename Vector::item3, typename Vector::item4\r
1084             , typename Vector::item5, typename Vector::item6\r
1085             , typename Vector::item7, typename Vector::item8\r
1086             , typename Vector::item9, typename Vector::item10\r
1087             , typename Vector::item11, typename Vector::item12\r
1088             , typename Vector::item13, typename Vector::item14\r
1089             , typename Vector::item15, typename Vector::item16\r
1090             , typename Vector::item17, typename Vector::item18\r
1091             , typename Vector::item19\r
1092             > type;\r
1093     };\r
1094 };\r
1095 \r
1096 template<>\r
1097 struct push_back_impl< aux::vector_tag<19> >\r
1098 {\r
1099     template< typename Vector, typename T > struct apply\r
1100     {\r
1101         typedef vector20<\r
1102               typename Vector::item0, typename Vector::item1\r
1103             , typename Vector::item2, typename Vector::item3\r
1104             , typename Vector::item4, typename Vector::item5\r
1105             , typename Vector::item6, typename Vector::item7\r
1106             , typename Vector::item8, typename Vector::item9\r
1107             , typename Vector::item10, typename Vector::item11\r
1108             , typename Vector::item12, typename Vector::item13\r
1109             , typename Vector::item14, typename Vector::item15\r
1110             , typename Vector::item16, typename Vector::item17\r
1111             , typename Vector::item18\r
1112               ,\r
1113               T\r
1114             > type;\r
1115     };\r
1116 };\r
1117 \r
1118 template<>\r
1119 struct pop_back_impl< aux::vector_tag<20> >\r
1120 {\r
1121     template< typename Vector > struct apply\r
1122     {\r
1123         typedef vector19<\r
1124               typename Vector::item0, typename Vector::item1\r
1125             , typename Vector::item2, typename Vector::item3\r
1126             , typename Vector::item4, typename Vector::item5\r
1127             , typename Vector::item6, typename Vector::item7\r
1128             , typename Vector::item8, typename Vector::item9\r
1129             , typename Vector::item10, typename Vector::item11\r
1130             , typename Vector::item12, typename Vector::item13\r
1131             , typename Vector::item14, typename Vector::item15\r
1132             , typename Vector::item16, typename Vector::item17\r
1133             , typename Vector::item18\r
1134             > type;\r
1135     };\r
1136 };\r
1137 \r
1138 template< typename V >\r
1139 struct v_at< V,20 >\r
1140 {\r
1141     typedef typename V::item20 type;\r
1142 };\r
1143 \r
1144 }}\r