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