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