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