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.hpp" header
\r
10 // -- DO NOT modify by hand!
\r
12 namespace boost { namespace mpl {
\r
20 typename lambda<F>::type
\r
24 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
34 struct apply_chooser<0>
\r
37 typename F, typename T1, typename T2, typename T3, typename T4
\r
51 typename F, typename T1
\r
56 typename lambda<F>::type
\r
60 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
70 struct apply_chooser<1>
\r
73 typename F, typename T1, typename T2, typename T3, typename T4
\r
87 typename F, typename T1, typename T2
\r
92 typename lambda<F>::type
\r
96 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
106 struct apply_chooser<2>
\r
109 typename F, typename T1, typename T2, typename T3, typename T4
\r
123 typename F, typename T1, typename T2, typename T3
\r
128 typename lambda<F>::type
\r
132 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
142 struct apply_chooser<3>
\r
145 typename F, typename T1, typename T2, typename T3, typename T4
\r
159 typename F, typename T1, typename T2, typename T3, typename T4
\r
164 typename lambda<F>::type
\r
168 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
171 , (F, T1, T2, T3, T4)
\r
178 struct apply_chooser<4>
\r
181 typename F, typename T1, typename T2, typename T3, typename T4
\r
195 typename F, typename T1, typename T2, typename T3, typename T4
\r
201 typename lambda<F>::type
\r
202 , T1, T2, T3, T4, T5
\r
205 BOOST_MPL_AUX_LAMBDA_SUPPORT(
\r
208 , (F, T1, T2, T3, T4, T5)
\r
215 struct apply_chooser<5>
\r
218 typename F, typename T1, typename T2, typename T3, typename T4
\r
224 F, T1, T2, T3, T4, T5
\r
233 template< typename T >
\r
234 struct is_apply_arg
\r
236 static bool const value = true;
\r
240 struct is_apply_arg<na>
\r
242 static bool const value = false;
\r
246 typename T1, typename T2, typename T3, typename T4, typename T5
\r
248 struct apply_count_args
\r
250 static int const value = is_apply_arg<T1>::value + is_apply_arg<T2>::value + is_apply_arg<T3>::value + is_apply_arg<T4>::value + is_apply_arg<T5>::value;
\r
257 typename F, typename T1 = na, typename T2 = na, typename T3 = na
\r
258 , typename T4 = na, typename T5 = na
\r
261 : aux::apply_chooser<
\r
262 aux::apply_count_args< T1,T2,T3,T4,T5 >::value
\r
263 >::template result_< F,T1,T2,T3,T4,T5 >::type
\r