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