Merge c:/dyninst/pc_bluegene/dyninst into dyn_pc_integration
[dyninst.git] / external / boost / mpl / aux_ / preprocessed / plain / apply.hpp
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.hpp" header
10 // -- DO NOT modify by hand!
11
12 namespace boost { namespace mpl {
13
14 template<
15       typename F
16     >
17 struct apply0
18
19     : apply_wrap0<
20           typename lambda<F>::type
21        
22         >
23 {
24 };
25
26 template<
27       typename F
28     >
29 struct apply< F,na,na,na,na,na >
30     : apply0<F>
31 {
32 };
33
34 template<
35       typename F, typename T1
36     >
37 struct apply1
38
39     : apply_wrap1<
40           typename lambda<F>::type
41         , T1
42         >
43 {
44 };
45
46 template<
47       typename F, typename T1
48     >
49 struct apply< F,T1,na,na,na,na >
50     : apply1< F,T1 >
51 {
52 };
53
54 template<
55       typename F, typename T1, typename T2
56     >
57 struct apply2
58
59     : apply_wrap2<
60           typename lambda<F>::type
61         , T1, T2
62         >
63 {
64 };
65
66 template<
67       typename F, typename T1, typename T2
68     >
69 struct apply< F,T1,T2,na,na,na >
70     : apply2< F,T1,T2 >
71 {
72 };
73
74 template<
75       typename F, typename T1, typename T2, typename T3
76     >
77 struct apply3
78
79     : apply_wrap3<
80           typename lambda<F>::type
81         , T1, T2, T3
82         >
83 {
84 };
85
86 template<
87       typename F, typename T1, typename T2, typename T3
88     >
89 struct apply< F,T1,T2,T3,na,na >
90     : apply3< F,T1,T2,T3 >
91 {
92 };
93
94 template<
95       typename F, typename T1, typename T2, typename T3, typename T4
96     >
97 struct apply4
98
99     : apply_wrap4<
100           typename lambda<F>::type
101         , T1, T2, T3, T4
102         >
103 {
104 };
105
106 template<
107       typename F, typename T1, typename T2, typename T3, typename T4
108     >
109 struct apply< F,T1,T2,T3,T4,na >
110     : apply4< F,T1,T2,T3,T4 >
111 {
112 };
113
114 template<
115       typename F, typename T1, typename T2, typename T3, typename T4
116     , typename T5
117     >
118 struct apply5
119
120     : apply_wrap5<
121           typename lambda<F>::type
122         , T1, T2, T3, T4, T5
123         >
124 {
125 };
126
127 /// primary template (not a specialization!)
128
129 template<
130       typename F, typename T1, typename T2, typename T3, typename T4
131     , typename T5
132     >
133 struct apply
134     : apply5< F,T1,T2,T3,T4,T5 >
135 {
136 };
137
138 }}
139