blob: a9a9b18fb337b17e4dd76f0d50548a0a5fc65b14 [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
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 "ndnboost/mpl/set_c.hpp" header
10// -- DO NOT modify by hand!
11
12namespace ndnboost { namespace mpl {
13
14namespace aux {
15template< int N >
16struct set_c_chooser;
17
18}
19
20namespace aux {
21
22template<>
23struct set_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 set0_c<
33 T
34 >::type type;
35
36 };
37};
38
39} // namespace aux
40
41namespace aux {
42
43template<>
44struct set_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 set1_c<
54 T, C0
55 >::type type;
56
57 };
58};
59
60} // namespace aux
61
62namespace aux {
63
64template<>
65struct set_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 set2_c<
75 T, C0, C1
76 >::type type;
77
78 };
79};
80
81} // namespace aux
82
83namespace aux {
84
85template<>
86struct set_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 set3_c<
96 T, C0, C1, C2
97 >::type type;
98
99 };
100};
101
102} // namespace aux
103
104namespace aux {
105
106template<>
107struct set_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 set4_c<
117 T, C0, C1, C2, C3
118 >::type type;
119
120 };
121};
122
123} // namespace aux
124
125namespace aux {
126
127template<>
128struct set_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 set5_c<
138 T, C0, C1, C2, C3, C4
139 >::type type;
140
141 };
142};
143
144} // namespace aux
145
146namespace aux {
147
148template<>
149struct set_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 set6_c<
159 T, C0, C1, C2, C3, C4, C5
160 >::type type;
161
162 };
163};
164
165} // namespace aux
166
167namespace aux {
168
169template<>
170struct set_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 set7_c<
180 T, C0, C1, C2, C3, C4, C5, C6
181 >::type type;
182
183 };
184};
185
186} // namespace aux
187
188namespace aux {
189
190template<>
191struct set_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 set8_c<
201 T, C0, C1, C2, C3, C4, C5, C6, C7
202 >::type type;
203
204 };
205};
206
207} // namespace aux
208
209namespace aux {
210
211template<>
212struct set_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 set9_c<
222 T, C0, C1, C2, C3, C4, C5, C6, C7, C8
223 >::type type;
224
225 };
226};
227
228} // namespace aux
229
230namespace aux {
231
232template<>
233struct set_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 set10_c<
243 T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
244 >::type type;
245
246 };
247};
248
249} // namespace aux
250
251namespace aux {
252
253template<>
254struct set_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 set11_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
272namespace aux {
273
274template<>
275struct set_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 set12_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
293namespace aux {
294
295template<>
296struct set_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 set13_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
314namespace aux {
315
316template<>
317struct set_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 set14_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
335namespace aux {
336
337template<>
338struct set_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 set15_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
356namespace aux {
357
358template<>
359struct set_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 set16_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
377namespace aux {
378
379template<>
380struct set_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 set17_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
398namespace aux {
399
400template<>
401struct set_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 set18_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
419namespace aux {
420
421template<>
422struct set_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 set19_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
440namespace aux {
441
442template<>
443struct set_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 set20_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
461namespace aux {
462
463template< long C >
464struct is_set_c_arg
465{
466 BOOST_STATIC_CONSTANT(bool, value = true);
467};
468
469template<>
470struct is_set_c_arg<LONG_MAX>
471{
472 BOOST_STATIC_CONSTANT(bool, value = false);
473};
474
475template<
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 >
480struct set_c_count_args
481{
482 BOOST_STATIC_CONSTANT(int, value =
483 is_set_c_arg<C1>::value + is_set_c_arg<C2>::value
484 + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value
485 + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value
486 + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value
487 + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value
488 + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value
489 + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value
490 + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value
491 + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value
492 + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
493 );
494
495};
496
497template<
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 >
502struct set_c_impl
503{
504 typedef aux::set_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::set_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
514template<
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 >
523struct set_c
524 : aux::set_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::set_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