Fixes for VS 2008
[dyninst.git] / external / boost / mpl / aux_ / preprocessed / msvc60 / vector_c.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_c.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< int N >\r
16 struct vector_c_chooser;\r
17 \r
18 }\r
19 \r
20 namespace aux {\r
21 \r
22 template<>\r
23 struct vector_c_chooser<0>\r
24 {\r
25     template<\r
26           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
27         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
28         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
29         >\r
30     struct result_\r
31     {\r
32         typedef typename vector0_c<\r
33               T\r
34             >::type type;\r
35 \r
36     };\r
37 };\r
38 \r
39 } // namespace aux\r
40 \r
41 namespace aux {\r
42 \r
43 template<>\r
44 struct vector_c_chooser<1>\r
45 {\r
46     template<\r
47           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
48         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
49         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
50         >\r
51     struct result_\r
52     {\r
53         typedef typename vector1_c<\r
54               T, T(C0)\r
55             >::type type;\r
56 \r
57     };\r
58 };\r
59 \r
60 } // namespace aux\r
61 \r
62 namespace aux {\r
63 \r
64 template<>\r
65 struct vector_c_chooser<2>\r
66 {\r
67     template<\r
68           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
69         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
70         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
71         >\r
72     struct result_\r
73     {\r
74         typedef typename vector2_c<\r
75               T, T(C0), T(C1)\r
76             >::type type;\r
77 \r
78     };\r
79 };\r
80 \r
81 } // namespace aux\r
82 \r
83 namespace aux {\r
84 \r
85 template<>\r
86 struct vector_c_chooser<3>\r
87 {\r
88     template<\r
89           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
90         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
91         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
92         >\r
93     struct result_\r
94     {\r
95         typedef typename vector3_c<\r
96               T, T(C0), T(C1), T(C2)\r
97             >::type type;\r
98 \r
99     };\r
100 };\r
101 \r
102 } // namespace aux\r
103 \r
104 namespace aux {\r
105 \r
106 template<>\r
107 struct vector_c_chooser<4>\r
108 {\r
109     template<\r
110           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
111         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
112         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
113         >\r
114     struct result_\r
115     {\r
116         typedef typename vector4_c<\r
117               T, T(C0), T(C1), T(C2), T(C3)\r
118             >::type type;\r
119 \r
120     };\r
121 };\r
122 \r
123 } // namespace aux\r
124 \r
125 namespace aux {\r
126 \r
127 template<>\r
128 struct vector_c_chooser<5>\r
129 {\r
130     template<\r
131           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
132         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
133         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
134         >\r
135     struct result_\r
136     {\r
137         typedef typename vector5_c<\r
138               T, T(C0), T(C1), T(C2), T(C3), T(C4)\r
139             >::type type;\r
140 \r
141     };\r
142 };\r
143 \r
144 } // namespace aux\r
145 \r
146 namespace aux {\r
147 \r
148 template<>\r
149 struct vector_c_chooser<6>\r
150 {\r
151     template<\r
152           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
153         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
154         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
155         >\r
156     struct result_\r
157     {\r
158         typedef typename vector6_c<\r
159               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5)\r
160             >::type type;\r
161 \r
162     };\r
163 };\r
164 \r
165 } // namespace aux\r
166 \r
167 namespace aux {\r
168 \r
169 template<>\r
170 struct vector_c_chooser<7>\r
171 {\r
172     template<\r
173           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
174         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
175         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
176         >\r
177     struct result_\r
178     {\r
179         typedef typename vector7_c<\r
180               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6)\r
181             >::type type;\r
182 \r
183     };\r
184 };\r
185 \r
186 } // namespace aux\r
187 \r
188 namespace aux {\r
189 \r
190 template<>\r
191 struct vector_c_chooser<8>\r
192 {\r
193     template<\r
194           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
195         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
196         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
197         >\r
198     struct result_\r
199     {\r
200         typedef typename vector8_c<\r
201               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7)\r
202             >::type type;\r
203 \r
204     };\r
205 };\r
206 \r
207 } // namespace aux\r
208 \r
209 namespace aux {\r
210 \r
211 template<>\r
212 struct vector_c_chooser<9>\r
213 {\r
214     template<\r
215           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
216         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
217         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
218         >\r
219     struct result_\r
220     {\r
221         typedef typename vector9_c<\r
222               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8)\r
223             >::type type;\r
224 \r
225     };\r
226 };\r
227 \r
228 } // namespace aux\r
229 \r
230 namespace aux {\r
231 \r
232 template<>\r
233 struct vector_c_chooser<10>\r
234 {\r
235     template<\r
236           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
237         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
238         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
239         >\r
240     struct result_\r
241     {\r
242         typedef typename vector10_c<\r
243               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9)\r
244             >::type type;\r
245 \r
246     };\r
247 };\r
248 \r
249 } // namespace aux\r
250 \r
251 namespace aux {\r
252 \r
253 template<>\r
254 struct vector_c_chooser<11>\r
255 {\r
256     template<\r
257           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
258         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
259         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
260         >\r
261     struct result_\r
262     {\r
263         typedef typename vector11_c<\r
264               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10)\r
265             >::type type;\r
266 \r
267     };\r
268 };\r
269 \r
270 } // namespace aux\r
271 \r
272 namespace aux {\r
273 \r
274 template<>\r
275 struct vector_c_chooser<12>\r
276 {\r
277     template<\r
278           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
279         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
280         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
281         >\r
282     struct result_\r
283     {\r
284         typedef typename vector12_c<\r
285               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11)\r
286             >::type type;\r
287 \r
288     };\r
289 };\r
290 \r
291 } // namespace aux\r
292 \r
293 namespace aux {\r
294 \r
295 template<>\r
296 struct vector_c_chooser<13>\r
297 {\r
298     template<\r
299           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
300         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
301         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
302         >\r
303     struct result_\r
304     {\r
305         typedef typename vector13_c<\r
306               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12)\r
307             >::type type;\r
308 \r
309     };\r
310 };\r
311 \r
312 } // namespace aux\r
313 \r
314 namespace aux {\r
315 \r
316 template<>\r
317 struct vector_c_chooser<14>\r
318 {\r
319     template<\r
320           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
321         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
322         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
323         >\r
324     struct result_\r
325     {\r
326         typedef typename vector14_c<\r
327               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13)\r
328             >::type type;\r
329 \r
330     };\r
331 };\r
332 \r
333 } // namespace aux\r
334 \r
335 namespace aux {\r
336 \r
337 template<>\r
338 struct vector_c_chooser<15>\r
339 {\r
340     template<\r
341           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
342         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
343         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
344         >\r
345     struct result_\r
346     {\r
347         typedef typename vector15_c<\r
348               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14)\r
349             >::type type;\r
350 \r
351     };\r
352 };\r
353 \r
354 } // namespace aux\r
355 \r
356 namespace aux {\r
357 \r
358 template<>\r
359 struct vector_c_chooser<16>\r
360 {\r
361     template<\r
362           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
363         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
364         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
365         >\r
366     struct result_\r
367     {\r
368         typedef typename vector16_c<\r
369               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15)\r
370             >::type type;\r
371 \r
372     };\r
373 };\r
374 \r
375 } // namespace aux\r
376 \r
377 namespace aux {\r
378 \r
379 template<>\r
380 struct vector_c_chooser<17>\r
381 {\r
382     template<\r
383           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
384         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
385         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
386         >\r
387     struct result_\r
388     {\r
389         typedef typename vector17_c<\r
390               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16)\r
391             >::type type;\r
392 \r
393     };\r
394 };\r
395 \r
396 } // namespace aux\r
397 \r
398 namespace aux {\r
399 \r
400 template<>\r
401 struct vector_c_chooser<18>\r
402 {\r
403     template<\r
404           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
405         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
406         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
407         >\r
408     struct result_\r
409     {\r
410         typedef typename vector18_c<\r
411               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17)\r
412             >::type type;\r
413 \r
414     };\r
415 };\r
416 \r
417 } // namespace aux\r
418 \r
419 namespace aux {\r
420 \r
421 template<>\r
422 struct vector_c_chooser<19>\r
423 {\r
424     template<\r
425           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
426         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
427         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
428         >\r
429     struct result_\r
430     {\r
431         typedef typename vector19_c<\r
432               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18)\r
433             >::type type;\r
434 \r
435     };\r
436 };\r
437 \r
438 } // namespace aux\r
439 \r
440 namespace aux {\r
441 \r
442 template<>\r
443 struct vector_c_chooser<20>\r
444 {\r
445     template<\r
446           typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
447         , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
448         , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
449         >\r
450     struct result_\r
451     {\r
452         typedef typename vector20_c<\r
453               T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19)\r
454             >::type type;\r
455 \r
456     };\r
457 };\r
458 \r
459 } // namespace aux\r
460 \r
461 namespace aux {\r
462 \r
463 template< long C >\r
464 struct is_vector_c_arg\r
465 {\r
466     BOOST_STATIC_CONSTANT(bool, value  = true);\r
467 };\r
468 \r
469 template<>\r
470 struct is_vector_c_arg<LONG_MAX>\r
471 {\r
472     BOOST_STATIC_CONSTANT(bool, value  = false);\r
473 };\r
474 \r
475 template<\r
476       long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8\r
477     , long C9, long C10, long C11, long C12, long C13, long C14, long C15\r
478     , long C16, long C17, long C18, long C19, long C20\r
479     >\r
480 struct vector_c_count_args\r
481 {\r
482     BOOST_STATIC_CONSTANT(int, value =\r
483           is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value \r
484         + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value \r
485         + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value \r
486         + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value \r
487         + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value \r
488         + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value \r
489         + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value \r
490         + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value \r
491         + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value \r
492         + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value\r
493         );\r
494 \r
495 };\r
496 \r
497 template<\r
498       typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
499     , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
500     , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
501     >\r
502 struct vector_c_impl\r
503 {\r
504     typedef aux::vector_c_count_args<\r
505           C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19\r
506         > arg_num_;\r
507 \r
508     typedef typename aux::vector_c_chooser< arg_num_::value >\r
509         ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;\r
510 };\r
511 \r
512 } // namespace aux\r
513 \r
514 template<\r
515       typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX\r
516     , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX\r
517     , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX\r
518     , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX\r
519     , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX\r
520     , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX\r
521     , long C18 = LONG_MAX, long C19 = LONG_MAX\r
522     >\r
523 struct vector_c\r
524     : aux::vector_c_impl<\r
525           T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19\r
526         >::type\r
527 {\r
528     typedef typename aux::vector_c_impl<\r
529           T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19\r
530         >::type type;\r
531 };\r
532 \r
533 }}\r
534 \r