]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/include/boost/mpl/aux_/preprocessed/msvc70/deque.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / mpl / include / boost / mpl / aux_ / preprocessed / msvc70 / deque.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/deque.hpp" header
10 // -- DO NOT modify by hand!
11
12 namespace boost { namespace mpl {
13
14 namespace aux {
15 template< int N >
16 struct deque_chooser;
17
18 }
19
20 namespace aux {
21
22 template<>
23 struct deque_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 vector0<
34
35 >::type type;
36
37 };
38 };
39
40 } // namespace aux
41
42 namespace aux {
43
44 template<>
45 struct deque_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 vector1<
56 T0
57 >::type type;
58
59 };
60 };
61
62 } // namespace aux
63
64 namespace aux {
65
66 template<>
67 struct deque_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 vector2<
78 T0, T1
79 >::type type;
80
81 };
82 };
83
84 } // namespace aux
85
86 namespace aux {
87
88 template<>
89 struct deque_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 vector3<
100 T0, T1, T2
101 >::type type;
102
103 };
104 };
105
106 } // namespace aux
107
108 namespace aux {
109
110 template<>
111 struct deque_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 vector4<
122 T0, T1, T2, T3
123 >::type type;
124
125 };
126 };
127
128 } // namespace aux
129
130 namespace aux {
131
132 template<>
133 struct deque_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 vector5<
144 T0, T1, T2, T3, T4
145 >::type type;
146
147 };
148 };
149
150 } // namespace aux
151
152 namespace aux {
153
154 template<>
155 struct deque_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 vector6<
166 T0, T1, T2, T3, T4, T5
167 >::type type;
168
169 };
170 };
171
172 } // namespace aux
173
174 namespace aux {
175
176 template<>
177 struct deque_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 vector7<
188 T0, T1, T2, T3, T4, T5, T6
189 >::type type;
190
191 };
192 };
193
194 } // namespace aux
195
196 namespace aux {
197
198 template<>
199 struct deque_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 vector8<
210 T0, T1, T2, T3, T4, T5, T6, T7
211 >::type type;
212
213 };
214 };
215
216 } // namespace aux
217
218 namespace aux {
219
220 template<>
221 struct deque_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 vector9<
232 T0, T1, T2, T3, T4, T5, T6, T7, T8
233 >::type type;
234
235 };
236 };
237
238 } // namespace aux
239
240 namespace aux {
241
242 template<>
243 struct deque_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 vector10<
254 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
255 >::type type;
256
257 };
258 };
259
260 } // namespace aux
261
262 namespace aux {
263
264 template<>
265 struct deque_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 vector11<
276 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
277 >::type type;
278
279 };
280 };
281
282 } // namespace aux
283
284 namespace aux {
285
286 template<>
287 struct deque_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 vector12<
298 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
299 >::type type;
300
301 };
302 };
303
304 } // namespace aux
305
306 namespace aux {
307
308 template<>
309 struct deque_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 vector13<
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
328 namespace aux {
329
330 template<>
331 struct deque_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 vector14<
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
350 namespace aux {
351
352 template<>
353 struct deque_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 vector15<
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
372 namespace aux {
373
374 template<>
375 struct deque_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 vector16<
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
394 namespace aux {
395
396 template<>
397 struct deque_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 vector17<
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
416 namespace aux {
417
418 template<>
419 struct deque_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 vector18<
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
438 namespace aux {
439
440 template<>
441 struct deque_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 vector19<
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
460 namespace aux {
461
462 template<>
463 struct deque_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 vector20<
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
482 namespace aux {
483
484 template< typename T >
485 struct is_deque_arg
486 {
487 BOOST_STATIC_CONSTANT(bool, value = true);
488 };
489
490 template<>
491 struct is_deque_arg<na>
492 {
493 BOOST_STATIC_CONSTANT(bool, value = false);
494 };
495
496 template<
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 >
502 struct deque_count_args
503 {
504 BOOST_STATIC_CONSTANT(int, value =
505 is_deque_arg<T1>::value + is_deque_arg<T2>::value
506 + is_deque_arg<T3>::value + is_deque_arg<T4>::value
507 + is_deque_arg<T5>::value + is_deque_arg<T6>::value
508 + is_deque_arg<T7>::value + is_deque_arg<T8>::value
509 + is_deque_arg<T9>::value + is_deque_arg<T10>::value
510 + is_deque_arg<T11>::value + is_deque_arg<T12>::value
511 + is_deque_arg<T13>::value + is_deque_arg<T14>::value
512 + is_deque_arg<T15>::value + is_deque_arg<T16>::value
513 + is_deque_arg<T17>::value + is_deque_arg<T18>::value
514 + is_deque_arg<T19>::value + is_deque_arg<T20>::value
515 );
516
517 };
518
519 template<
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 >
525 struct deque_impl
526 {
527 typedef aux::deque_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::deque_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
537 template<
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 >
545 struct deque
546 : aux::deque_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::deque_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