blob: 0ec6397ea4d91a3316766a886eecd946f7265dac [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
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
12namespace ndnboost { namespace mpl {
13
14template<
15 int N, typename F
16 >
17struct apply_wrap_impl0;
18
19template< typename F, bool F_has_apply >
20struct apply_wrap_impl0_bcb {
21 typedef typename F::template apply<na> type;
22};
23
24template< typename F >
25struct apply_wrap_impl0_bcb< F,true > {
26 typedef typename F::apply type;
27};
28
29template<
30 typename F
31 >
32struct 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
41template<
42 typename F
43 >
44struct apply_wrap_impl0<
45 1
46 , F
47
48 >
49{
50 typedef typename F::template apply<
51
52 na
53 > type;
54};
55
56template<
57 typename F
58 >
59struct 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
72template<
73 typename F
74 >
75struct 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
88template<
89 typename F
90 >
91struct 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
104template<
105 typename F
106 >
107struct 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
120template<
121 typename F
122 >
123struct apply_wrap0
124 : apply_wrap_impl0<
125 ::ndnboost::mpl::aux::arity< F,0 >::value
126 , F
127
128 >::type
129{
130};
131
132template<
133 int N, typename F, typename T1
134 >
135struct apply_wrap_impl1;
136
137template<
138 typename F, typename T1
139 >
140struct apply_wrap_impl1<
141 1
142 , F
143 , T1
144 >
145{
146 typedef typename F::template apply<
147 T1
148 > type;
149};
150
151template<
152 typename F, typename T1
153 >
154struct 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
167template<
168 typename F, typename T1
169 >
170struct 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
183template<
184 typename F, typename T1
185 >
186struct 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
199template<
200 typename F, typename T1
201 >
202struct 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
215template<
216 typename F, typename T1
217 >
218struct apply_wrap1
219 : apply_wrap_impl1<
220 ::ndnboost::mpl::aux::arity< F,1 >::value
221 , F
222 , T1
223 >::type
224{
225};
226
227template<
228 int N, typename F, typename T1, typename T2
229 >
230struct apply_wrap_impl2;
231
232template<
233 typename F, typename T1, typename T2
234 >
235struct 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
247template<
248 typename F, typename T1, typename T2
249 >
250struct 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
264template<
265 typename F, typename T1, typename T2
266 >
267struct 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
281template<
282 typename F, typename T1, typename T2
283 >
284struct 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
298template<
299 typename F, typename T1, typename T2
300 >
301struct apply_wrap2
302 : apply_wrap_impl2<
303 ::ndnboost::mpl::aux::arity< F,2 >::value
304 , F
305 , T1, T2
306 >::type
307{
308};
309
310template<
311 int N, typename F, typename T1, typename T2, typename T3
312 >
313struct apply_wrap_impl3;
314
315template<
316 typename F, typename T1, typename T2, typename T3
317 >
318struct 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
330template<
331 typename F, typename T1, typename T2, typename T3
332 >
333struct 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
347template<
348 typename F, typename T1, typename T2, typename T3
349 >
350struct 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
364template<
365 typename F, typename T1, typename T2, typename T3
366 >
367struct apply_wrap3
368 : apply_wrap_impl3<
369 ::ndnboost::mpl::aux::arity< F,3 >::value
370 , F
371 , T1, T2, T3
372 >::type
373{
374};
375
376template<
377 int N, typename F, typename T1, typename T2, typename T3, typename T4
378 >
379struct apply_wrap_impl4;
380
381template<
382 typename F, typename T1, typename T2, typename T3, typename T4
383 >
384struct 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
396template<
397 typename F, typename T1, typename T2, typename T3, typename T4
398 >
399struct 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
413template<
414 typename F, typename T1, typename T2, typename T3, typename T4
415 >
416struct apply_wrap4
417 : apply_wrap_impl4<
418 ::ndnboost::mpl::aux::arity< F,4 >::value
419 , F
420 , T1, T2, T3, T4
421 >::type
422{
423};
424
425template<
426 int N, typename F, typename T1, typename T2, typename T3, typename T4
427 , typename T5
428 >
429struct apply_wrap_impl5;
430
431template<
432 typename F, typename T1, typename T2, typename T3, typename T4
433 , typename T5
434 >
435struct 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
447template<
448 typename F, typename T1, typename T2, typename T3, typename T4
449 , typename T5
450 >
451struct apply_wrap5
452 : apply_wrap_impl5<
453 ::ndnboost::mpl::aux::arity< F,5 >::value
454 , F
455 , T1, T2, T3, T4, T5
456 >::type
457{
458};
459
460}}
461