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

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