Merge c:/dyninst/pc_bluegene/dyninst into dyn_pc_integration
[dyninst.git] / external / 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