2 // Copyright Aleksey Gurtovoy 2000-2004
\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
9 // Preprocessed version of "boost/mpl/apply_wrap.hpp" header
\r
10 // -- DO NOT modify by hand!
\r
12 namespace boost { namespace mpl {
\r
14 template< typename F>
\r
17 template< bool > struct f_ : F {};
\r
18 template<> struct f_<true>
\r
20 template< typename P = int > struct apply
\r
26 template< typename T = int > struct result_
\r
27 : f_< aux::msvc_never_true<F>::value >
\r
39 typedef typename msvc_apply0<F>::template result_<
\r
44 /// workaround for ETI bug
\r
46 struct apply_wrap0<int>
\r
51 template< typename F>
\r
54 template< bool > struct f_ : F {};
\r
55 template<> struct f_<true>
\r
57 template< typename P1 > struct apply
\r
63 template< typename T1 > struct result_
\r
64 : f_< aux::msvc_never_true<F>::value >
\r
65 ::template apply<T1>
\r
71 typename F, typename T1
\r
75 typedef typename msvc_apply1<F>::template result_<
\r
80 /// workaround for ETI bug
\r
82 struct apply_wrap1< int,int >
\r
87 template< typename F>
\r
90 template< bool > struct f_ : F {};
\r
91 template<> struct f_<true>
\r
93 template< typename P1, typename P2 > struct apply
\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
107 typename F, typename T1, typename T2
\r
111 typedef typename msvc_apply2<F>::template result_<
\r
116 /// workaround for ETI bug
\r
118 struct apply_wrap2< int,int,int >
\r
123 template< typename F>
\r
126 template< bool > struct f_ : F {};
\r
127 template<> struct f_<true>
\r
129 template< typename P1, typename P2, typename P3 > struct apply
\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
143 typename F, typename T1, typename T2, typename T3
\r
147 typedef typename msvc_apply3<F>::template result_<
\r
152 /// workaround for ETI bug
\r
154 struct apply_wrap3< int,int,int,int >
\r
159 template< typename F>
\r
162 template< bool > struct f_ : F {};
\r
163 template<> struct f_<true>
\r
166 typename P1, typename P2, typename P3, typename P4
\r
175 typename T1, typename T2, typename T3, typename T4
\r
178 : f_< aux::msvc_never_true<F>::value >
\r
179 ::template apply< T1,T2,T3,T4 >
\r
185 typename F, typename T1, typename T2, typename T3, typename T4
\r
189 typedef typename msvc_apply4<F>::template result_<
\r
194 /// workaround for ETI bug
\r
196 struct apply_wrap4< int,int,int,int,int >
\r
201 template< typename F>
\r
204 template< bool > struct f_ : F {};
\r
205 template<> struct f_<true>
\r
208 typename P1, typename P2, typename P3, typename P4
\r
218 typename T1, typename T2, typename T3, typename T4
\r
222 : f_< aux::msvc_never_true<F>::value >
\r
223 ::template apply< T1,T2,T3,T4,T5 >
\r
229 typename F, typename T1, typename T2, typename T3, typename T4
\r
234 typedef typename msvc_apply5<F>::template result_<
\r
239 /// workaround for ETI bug
\r
241 struct apply_wrap5< int,int,int,int,int,int >
\r