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