source: NonGTP/Boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp @ 857

Revision 857, 7.2 KB checked in by igarcia, 19 years ago (diff)
Line 
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/apply_wrap.hpp" header
10// -- DO NOT modify by hand!
11
12namespace boost { 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          ::boost::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          ::boost::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          ::boost::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          ::boost::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          ::boost::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          ::boost::mpl::aux::arity< F,5 >::value
449        , F
450        , T1, T2, T3, T4, T5
451        >::type
452{
453};
454
455}}
456
Note: See TracBrowser for help on using the repository browser.