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