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