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