]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
3b06c70c29c6588583ad6872a1fa217befa8c136
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / aux_ / preprocessed / msvc60 / apply_wrap.hpp
1 \r
2 // Copyright Aleksey Gurtovoy 2000-2004\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 "boost/mpl/apply_wrap.hpp" header\r
10 // -- DO NOT modify by hand!\r
11 \r
12 namespace boost { namespace mpl {\r
13 \r
14 template< typename F>\r
15 struct msvc_apply0\r
16 {\r
17     template< bool > struct f_ : F {};\r
18     template<> struct f_<true>\r
19     {\r
20         template< typename P  = int > struct apply\r
21         {\r
22             typedef int type;\r
23         };\r
24     };\r
25 \r
26     template< typename T  = int > struct result_\r
27         : f_< aux::msvc_never_true<F>::value >\r
28             ::template apply<>\r
29     {\r
30     };\r
31 \r
32 };\r
33 \r
34 template<\r
35       typename F\r
36     >\r
37 struct apply_wrap0\r
38 {\r
39     typedef typename msvc_apply0<F>::template result_<\r
40          \r
41         >::type type;\r
42 };\r
43 \r
44 /// workaround for ETI bug\r
45 template<>\r
46 struct apply_wrap0<int>\r
47 {\r
48     typedef int type;\r
49 };\r
50 \r
51 template< typename F>\r
52 struct msvc_apply1\r
53 {\r
54     template< bool > struct f_ : F {};\r
55     template<> struct f_<true>\r
56     {\r
57         template< typename P1 > struct apply\r
58         {\r
59             typedef int type;\r
60         };\r
61     };\r
62 \r
63     template< typename T1 > struct result_\r
64         : f_< aux::msvc_never_true<F>::value >\r
65             ::template apply<T1>\r
66     {\r
67     };\r
68 };\r
69 \r
70 template<\r
71       typename F, typename T1\r
72     >\r
73 struct apply_wrap1\r
74 {\r
75     typedef typename msvc_apply1<F>::template result_<\r
76           T1\r
77         >::type type;\r
78 };\r
79 \r
80 /// workaround for ETI bug\r
81 template<>\r
82 struct apply_wrap1< int,int >\r
83 {\r
84     typedef int type;\r
85 };\r
86 \r
87 template< typename F>\r
88 struct msvc_apply2\r
89 {\r
90     template< bool > struct f_ : F {};\r
91     template<> struct f_<true>\r
92     {\r
93         template< typename P1, typename P2 > struct apply\r
94         {\r
95             typedef int type;\r
96         };\r
97     };\r
98 \r
99     template< typename T1, typename T2 > struct result_\r
100         : f_< aux::msvc_never_true<F>::value >\r
101             ::template apply< T1,T2 >\r
102     {\r
103     };\r
104 };\r
105 \r
106 template<\r
107       typename F, typename T1, typename T2\r
108     >\r
109 struct apply_wrap2\r
110 {\r
111     typedef typename msvc_apply2<F>::template result_<\r
112           T1, T2\r
113         >::type type;\r
114 };\r
115 \r
116 /// workaround for ETI bug\r
117 template<>\r
118 struct apply_wrap2< int,int,int >\r
119 {\r
120     typedef int type;\r
121 };\r
122 \r
123 template< typename F>\r
124 struct msvc_apply3\r
125 {\r
126     template< bool > struct f_ : F {};\r
127     template<> struct f_<true>\r
128     {\r
129         template< typename P1, typename P2, typename P3 > struct apply\r
130         {\r
131             typedef int type;\r
132         };\r
133     };\r
134 \r
135     template< typename T1, typename T2, typename T3 > struct result_\r
136         : f_< aux::msvc_never_true<F>::value >\r
137             ::template apply< T1,T2,T3 >\r
138     {\r
139     };\r
140 };\r
141 \r
142 template<\r
143       typename F, typename T1, typename T2, typename T3\r
144     >\r
145 struct apply_wrap3\r
146 {\r
147     typedef typename msvc_apply3<F>::template result_<\r
148           T1, T2, T3\r
149         >::type type;\r
150 };\r
151 \r
152 /// workaround for ETI bug\r
153 template<>\r
154 struct apply_wrap3< int,int,int,int >\r
155 {\r
156     typedef int type;\r
157 };\r
158 \r
159 template< typename F>\r
160 struct msvc_apply4\r
161 {\r
162     template< bool > struct f_ : F {};\r
163     template<> struct f_<true>\r
164     {\r
165         template<\r
166               typename P1, typename P2, typename P3, typename P4\r
167             >\r
168         struct apply\r
169         {\r
170             typedef int type;\r
171         };\r
172     };\r
173 \r
174     template<\r
175           typename T1, typename T2, typename T3, typename T4\r
176         >\r
177     struct result_\r
178         : f_< aux::msvc_never_true<F>::value >\r
179             ::template apply< T1,T2,T3,T4 >\r
180     {\r
181     };\r
182 };\r
183 \r
184 template<\r
185       typename F, typename T1, typename T2, typename T3, typename T4\r
186     >\r
187 struct apply_wrap4\r
188 {\r
189     typedef typename msvc_apply4<F>::template result_<\r
190           T1, T2, T3, T4\r
191         >::type type;\r
192 };\r
193 \r
194 /// workaround for ETI bug\r
195 template<>\r
196 struct apply_wrap4< int,int,int,int,int >\r
197 {\r
198     typedef int type;\r
199 };\r
200 \r
201 template< typename F>\r
202 struct msvc_apply5\r
203 {\r
204     template< bool > struct f_ : F {};\r
205     template<> struct f_<true>\r
206     {\r
207         template<\r
208               typename P1, typename P2, typename P3, typename P4\r
209             , typename P5\r
210             >\r
211         struct apply\r
212         {\r
213             typedef int type;\r
214         };\r
215     };\r
216 \r
217     template<\r
218           typename T1, typename T2, typename T3, typename T4\r
219         , typename T5\r
220         >\r
221     struct result_\r
222         : f_< aux::msvc_never_true<F>::value >\r
223             ::template apply< T1,T2,T3,T4,T5 >\r
224     {\r
225     };\r
226 };\r
227 \r
228 template<\r
229       typename F, typename T1, typename T2, typename T3, typename T4\r
230     , typename T5\r
231     >\r
232 struct apply_wrap5\r
233 {\r
234     typedef typename msvc_apply5<F>::template result_<\r
235           T1, T2, T3, T4, T5\r
236         >::type type;\r
237 };\r
238 \r
239 /// workaround for ETI bug\r
240 template<>\r
241 struct apply_wrap5< int,int,int,int,int,int >\r
242 {\r
243     typedef int type;\r
244 };\r
245 \r
246 }}\r
247 \r