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