Merge c:/dyninst/pc_bluegene/dyninst into dyn_pc_integration
[dyninst.git] / external / boost / mpl / aux_ / preprocessed / gcc / 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     BOOST_MPL_AUX_LAMBDA_SUPPORT(
25           1
26         , apply0
27         , (F )
28         )
29 };
30
31 template<
32       typename F
33     >
34 struct apply< F,na,na,na,na,na >
35     : apply0<F>
36 {
37 };
38
39 template<
40       typename F, typename T1
41     >
42 struct apply1
43
44     : apply_wrap1<
45           typename lambda<F>::type
46         , T1
47         >
48 {
49     BOOST_MPL_AUX_LAMBDA_SUPPORT(
50           2
51         , apply1
52         , (F, T1)
53         )
54 };
55
56 template<
57       typename F, typename T1
58     >
59 struct apply< F,T1,na,na,na,na >
60     : apply1< F,T1 >
61 {
62 };
63
64 template<
65       typename F, typename T1, typename T2
66     >
67 struct apply2
68
69     : apply_wrap2<
70           typename lambda<F>::type
71         , T1, T2
72         >
73 {
74     BOOST_MPL_AUX_LAMBDA_SUPPORT(
75           3
76         , apply2
77         , (F, T1, T2)
78         )
79 };
80
81 template<
82       typename F, typename T1, typename T2
83     >
84 struct apply< F,T1,T2,na,na,na >
85     : apply2< F,T1,T2 >
86 {
87 };
88
89 template<
90       typename F, typename T1, typename T2, typename T3
91     >
92 struct apply3
93
94     : apply_wrap3<
95           typename lambda<F>::type
96         , T1, T2, T3
97         >
98 {
99     BOOST_MPL_AUX_LAMBDA_SUPPORT(
100           4
101         , apply3
102         , (F, T1, T2, T3)
103         )
104 };
105
106 template<
107       typename F, typename T1, typename T2, typename T3
108     >
109 struct apply< F,T1,T2,T3,na,na >
110     : apply3< F,T1,T2,T3 >
111 {
112 };
113
114 template<
115       typename F, typename T1, typename T2, typename T3, typename T4
116     >
117 struct apply4
118
119     : apply_wrap4<
120           typename lambda<F>::type
121         , T1, T2, T3, T4
122         >
123 {
124     BOOST_MPL_AUX_LAMBDA_SUPPORT(
125           5
126         , apply4
127         , (F, T1, T2, T3, T4)
128         )
129 };
130
131 template<
132       typename F, typename T1, typename T2, typename T3, typename T4
133     >
134 struct apply< F,T1,T2,T3,T4,na >
135     : apply4< F,T1,T2,T3,T4 >
136 {
137 };
138
139 template<
140       typename F, typename T1, typename T2, typename T3, typename T4
141     , typename T5
142     >
143 struct apply5
144
145     : apply_wrap5<
146           typename lambda<F>::type
147         , T1, T2, T3, T4, T5
148         >
149 {
150     BOOST_MPL_AUX_LAMBDA_SUPPORT(
151           6
152         , apply5
153         , (F, T1, T2, T3, T4, T5)
154         )
155 };
156
157 /// primary template (not a specialization!)
158
159 template<
160       typename F, typename T1, typename T2, typename T3, typename T4
161     , typename T5
162     >
163 struct apply
164     : apply5< F,T1,T2,T3,T4,T5 >
165 {
166 };
167
168 }}
169