]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/include/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / mpl / include / boost / mpl / aux_ / preprocessed / bcc / apply_wrap.hpp
1
2 // Copyright Aleksey Gurtovoy 2000-2008
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 the main "apply_wrap.hpp" header
10 // -- DO NOT modify by hand!
11
12 namespace boost { namespace mpl {
13
14 template<
15 int N, typename F
16 >
17 struct apply_wrap_impl0;
18
19 template< typename F, bool F_has_apply >
20 struct apply_wrap_impl0_bcb {
21 typedef typename F::template apply<na> type;
22 };
23
24 template< typename F >
25 struct apply_wrap_impl0_bcb< F,true > {
26 typedef typename F::apply type;
27 };
28
29 template<
30 typename F
31 >
32 struct apply_wrap_impl0<
33 0
34 , F
35
36 >
37 {
38 typedef apply_wrap_impl0_bcb< F, aux::has_apply<F>::value >::type type;
39 };
40
41 template<
42 typename F
43 >
44 struct apply_wrap_impl0<
45 1
46 , F
47
48 >
49 {
50 typedef typename F::template apply<
51
52 na
53 > type;
54 };
55
56 template<
57 typename F
58 >
59 struct apply_wrap_impl0<
60 2
61 , F
62
63 >
64 {
65 typedef typename F::template apply<
66
67 na, na
68
69 > type;
70 };
71
72 template<
73 typename F
74 >
75 struct apply_wrap_impl0<
76 3
77 , F
78
79 >
80 {
81 typedef typename F::template apply<
82
83 na, na, na
84
85 > type;
86 };
87
88 template<
89 typename F
90 >
91 struct apply_wrap_impl0<
92 4
93 , F
94
95 >
96 {
97 typedef typename F::template apply<
98
99 na, na, na, na
100
101 > type;
102 };
103
104 template<
105 typename F
106 >
107 struct apply_wrap_impl0<
108 5
109 , F
110
111 >
112 {
113 typedef typename F::template apply<
114
115 na, na, na, na, na
116
117 > type;
118 };
119
120 template<
121 typename F
122 >
123 struct apply_wrap0
124 : apply_wrap_impl0<
125 ::boost::mpl::aux::arity< F,0 >::value
126 , F
127
128 >::type
129 {
130 };
131
132 template<
133 int N, typename F, typename T1
134 >
135 struct apply_wrap_impl1;
136
137 template<
138 typename F, typename T1
139 >
140 struct apply_wrap_impl1<
141 1
142 , F
143 , T1
144 >
145 {
146 typedef typename F::template apply<
147 T1
148 > type;
149 };
150
151 template<
152 typename F, typename T1
153 >
154 struct apply_wrap_impl1<
155 2
156 , F
157 , T1
158 >
159 {
160 typedef typename F::template apply<
161 T1
162 , na
163
164 > type;
165 };
166
167 template<
168 typename F, typename T1
169 >
170 struct apply_wrap_impl1<
171 3
172 , F
173 , T1
174 >
175 {
176 typedef typename F::template apply<
177 T1
178 , na, na
179
180 > type;
181 };
182
183 template<
184 typename F, typename T1
185 >
186 struct apply_wrap_impl1<
187 4
188 , F
189 , T1
190 >
191 {
192 typedef typename F::template apply<
193 T1
194 , na, na, na
195
196 > type;
197 };
198
199 template<
200 typename F, typename T1
201 >
202 struct apply_wrap_impl1<
203 5
204 , F
205 , T1
206 >
207 {
208 typedef typename F::template apply<
209 T1
210 , na, na, na, na
211
212 > type;
213 };
214
215 template<
216 typename F, typename T1
217 >
218 struct apply_wrap1
219 : apply_wrap_impl1<
220 ::boost::mpl::aux::arity< F,1 >::value
221 , F
222 , T1
223 >::type
224 {
225 };
226
227 template<
228 int N, typename F, typename T1, typename T2
229 >
230 struct apply_wrap_impl2;
231
232 template<
233 typename F, typename T1, typename T2
234 >
235 struct apply_wrap_impl2<
236 2
237 , F
238 , T1, T2
239 >
240 {
241 typedef typename F::template apply<
242 T1, T2
243
244 > type;
245 };
246
247 template<
248 typename F, typename T1, typename T2
249 >
250 struct apply_wrap_impl2<
251 3
252 , F
253 , T1, T2
254 >
255 {
256 typedef typename F::template apply<
257 T1, T2
258
259 , na
260
261 > type;
262 };
263
264 template<
265 typename F, typename T1, typename T2
266 >
267 struct apply_wrap_impl2<
268 4
269 , F
270 , T1, T2
271 >
272 {
273 typedef typename F::template apply<
274 T1, T2
275
276 , na, na
277
278 > type;
279 };
280
281 template<
282 typename F, typename T1, typename T2
283 >
284 struct apply_wrap_impl2<
285 5
286 , F
287 , T1, T2
288 >
289 {
290 typedef typename F::template apply<
291 T1, T2
292
293 , na, na, na
294
295 > type;
296 };
297
298 template<
299 typename F, typename T1, typename T2
300 >
301 struct apply_wrap2
302 : apply_wrap_impl2<
303 ::boost::mpl::aux::arity< F,2 >::value
304 , F
305 , T1, T2
306 >::type
307 {
308 };
309
310 template<
311 int N, typename F, typename T1, typename T2, typename T3
312 >
313 struct apply_wrap_impl3;
314
315 template<
316 typename F, typename T1, typename T2, typename T3
317 >
318 struct apply_wrap_impl3<
319 3
320 , F
321 , T1, T2, T3
322 >
323 {
324 typedef typename F::template apply<
325 T1, T2, T3
326
327 > type;
328 };
329
330 template<
331 typename F, typename T1, typename T2, typename T3
332 >
333 struct apply_wrap_impl3<
334 4
335 , F
336 , T1, T2, T3
337 >
338 {
339 typedef typename F::template apply<
340 T1, T2, T3
341
342 , na
343
344 > type;
345 };
346
347 template<
348 typename F, typename T1, typename T2, typename T3
349 >
350 struct apply_wrap_impl3<
351 5
352 , F
353 , T1, T2, T3
354 >
355 {
356 typedef typename F::template apply<
357 T1, T2, T3
358
359 , na, na
360
361 > type;
362 };
363
364 template<
365 typename F, typename T1, typename T2, typename T3
366 >
367 struct apply_wrap3
368 : apply_wrap_impl3<
369 ::boost::mpl::aux::arity< F,3 >::value
370 , F
371 , T1, T2, T3
372 >::type
373 {
374 };
375
376 template<
377 int N, typename F, typename T1, typename T2, typename T3, typename T4
378 >
379 struct apply_wrap_impl4;
380
381 template<
382 typename F, typename T1, typename T2, typename T3, typename T4
383 >
384 struct apply_wrap_impl4<
385 4
386 , F
387 , T1, T2, T3, T4
388 >
389 {
390 typedef typename F::template apply<
391 T1, T2, T3, T4
392
393 > type;
394 };
395
396 template<
397 typename F, typename T1, typename T2, typename T3, typename T4
398 >
399 struct apply_wrap_impl4<
400 5
401 , F
402 , T1, T2, T3, T4
403 >
404 {
405 typedef typename F::template apply<
406 T1, T2, T3, T4
407
408 , na
409
410 > type;
411 };
412
413 template<
414 typename F, typename T1, typename T2, typename T3, typename T4
415 >
416 struct apply_wrap4
417 : apply_wrap_impl4<
418 ::boost::mpl::aux::arity< F,4 >::value
419 , F
420 , T1, T2, T3, T4
421 >::type
422 {
423 };
424
425 template<
426 int N, typename F, typename T1, typename T2, typename T3, typename T4
427 , typename T5
428 >
429 struct apply_wrap_impl5;
430
431 template<
432 typename F, typename T1, typename T2, typename T3, typename T4
433 , typename T5
434 >
435 struct apply_wrap_impl5<
436 5
437 , F
438 , T1, T2, T3, T4, T5
439 >
440 {
441 typedef typename F::template apply<
442 T1, T2, T3, T4, T5
443
444 > type;
445 };
446
447 template<
448 typename F, typename T1, typename T2, typename T3, typename T4
449 , typename T5
450 >
451 struct apply_wrap5
452 : apply_wrap_impl5<
453 ::boost::mpl::aux::arity< F,5 >::value
454 , F
455 , T1, T2, T3, T4, T5
456 >::type
457 {
458 };
459
460 }}
461