// -- bind_functions.hpp -- Boost Lambda Library // // Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // For more information, see http://www.boost.org // ---------------------------------------------------------------- #ifndef BOOST_LAMBDA_BIND_FUNCTIONS_HPP #define BOOST_LAMBDA_BIND_FUNCTIONS_HPP namespace boost { namespace lambda { #ifdef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING // gcc 2.96 instantiates bind functions it does not even call. // These instantiations lead to incorrect types in the return type, // and a compilation error results. // This tweaking is to prevent the formation of the erroneous type. namespace detail { template struct constify_non_funcs { typedef typename detail::IF_type::value, boost::add_reference, boost::add_const >::type type; }; } #endif // 1-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper::type > > bind(Result(& a1)()) { return lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<1, function_action<1> >, typename detail::bind_tuple_mapper::type > > bind(const Arg1& a1) { return lambda_functor_base< action<1, function_action<1> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1) ); } template inline const lambda_functor< lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper::type > > bind(const Arg1& a1) { return lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1) ); } #else template inline const lambda_functor< lambda_functor_base< action<1, function_action<1> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type >::type > > bind(const Arg1& a1) { return lambda_functor_base< action<1, function_action<1> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type >::type (a1) ); } template inline const lambda_functor< lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type >::type > > bind(const Arg1& a1) { return lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type >::type (a1) ); } template inline const lambda_functor< lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper::type > > bind(Result(* const & a1)()) { return lambda_functor_base< action<1, function_action<1, Result> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1) ); } #endif // 2-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper::type > > bind(Result(&a1)(Par1), const Arg2& a2) { return lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1, a2) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<2, function_action<2> >, typename detail::bind_tuple_mapper::type > > bind(const Arg1& a1, const Arg2& a2) { return lambda_functor_base< action<2, function_action<2> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1, a2) ); } template inline const lambda_functor< lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper::type > > bind(const Arg1& a1, const Arg2& a2) { return lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1, a2) ); } #else template inline const lambda_functor< lambda_functor_base< action<2, function_action<2> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2 >::type > > bind(const Arg1& a1, const Arg2& a2) { return lambda_functor_base< action<2, function_action<2> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2 >::type (a1, a2) ); } template inline const lambda_functor< lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2 >::type > > bind(const Arg1& a1, const Arg2& a2) { return lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2 >::type (a1, a2) ); } template inline const lambda_functor< lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper::type > > bind(Result(* const & a1)(Par1), const Arg2& a2) { return lambda_functor_base< action<2, function_action<2, Result> >, typename detail::bind_tuple_mapper::type > ( typename detail::bind_tuple_mapper::type (a1, a2) ); } #endif // 3-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2), const Arg2, const Arg3 >::type > > bind(Result(&a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) { return lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2), const Arg2, const Arg3 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2), const Arg2, const Arg3 >::type (a1, a2, a3) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<3, function_action<3> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) { return lambda_functor_base< action<3, function_action<3> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3 >::type (a1, a2, a3) ); } template inline const lambda_functor< lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) { return lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3 >::type (a1, a2, a3) ); } #else template inline const lambda_functor< lambda_functor_base< action<3, function_action<3> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) { return lambda_functor_base< action<3, function_action<3> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3 >::type (a1, a2, a3) ); } template inline const lambda_functor< lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) { return lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3 >::type (a1, a2, a3) ); } template inline const lambda_functor< lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2), const Arg2, const Arg3 >::type > > bind(Result(* const & a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) { return lambda_functor_base< action<3, function_action<3, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2), const Arg2, const Arg3 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2), const Arg2, const Arg3 >::type (a1, a2, a3) ); } #endif // 4-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4 >::type > > bind(Result(&a1)(Par1, Par2, Par3), const Arg2& a2, const Arg3& a3, const Arg4& a4) { return lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4 >::type (a1, a2, a3, a4) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<4, function_action<4> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) { return lambda_functor_base< action<4, function_action<4> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4 >::type (a1, a2, a3, a4) ); } template inline const lambda_functor< lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) { return lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4 >::type (a1, a2, a3, a4) ); } #else template inline const lambda_functor< lambda_functor_base< action<4, function_action<4> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) { return lambda_functor_base< action<4, function_action<4> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4 >::type (a1, a2, a3, a4) ); } template inline const lambda_functor< lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) { return lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4 >::type (a1, a2, a3, a4) ); } template inline const lambda_functor< lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4 >::type > > bind(Result(* const & a1)(Par1, Par2, Par3), const Arg2& a2, const Arg3& a3, const Arg4& a4) { return lambda_functor_base< action<4, function_action<4, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4 >::type (a1, a2, a3, a4) ); } #endif // 5-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4, const Arg5 >::type > > bind(Result(&a1)(Par1, Par2, Par3, Par4), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5) { return lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4, const Arg5 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4, const Arg5 >::type (a1, a2, a3, a4, a5) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<5, function_action<5> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5) { return lambda_functor_base< action<5, function_action<5> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5 >::type (a1, a2, a3, a4, a5) ); } template inline const lambda_functor< lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5) { return lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5 >::type (a1, a2, a3, a4, a5) ); } #else template inline const lambda_functor< lambda_functor_base< action<5, function_action<5> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5) { return lambda_functor_base< action<5, function_action<5> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5 >::type (a1, a2, a3, a4, a5) ); } template inline const lambda_functor< lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5) { return lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5 >::type (a1, a2, a3, a4, a5) ); } template inline const lambda_functor< lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4, const Arg5 >::type > > bind(Result(* const & a1)(Par1, Par2, Par3, Par4), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5) { return lambda_functor_base< action<5, function_action<5, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4, const Arg5 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4, const Arg5 >::type (a1, a2, a3, a4, a5) ); } #endif // 6-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > > bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) { return lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type (a1, a2, a3, a4, a5, a6) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<6, function_action<6> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) { return lambda_functor_base< action<6, function_action<6> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type (a1, a2, a3, a4, a5, a6) ); } template inline const lambda_functor< lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) { return lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type (a1, a2, a3, a4, a5, a6) ); } #else template inline const lambda_functor< lambda_functor_base< action<6, function_action<6> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) { return lambda_functor_base< action<6, function_action<6> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type (a1, a2, a3, a4, a5, a6) ); } template inline const lambda_functor< lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) { return lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type (a1, a2, a3, a4, a5, a6) ); } template inline const lambda_functor< lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > > bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) { return lambda_functor_base< action<6, function_action<6, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6 >::type (a1, a2, a3, a4, a5, a6) ); } #endif // 7-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > > bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7) { return lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type (a1, a2, a3, a4, a5, a6, a7) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<7, function_action<7> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7) { return lambda_functor_base< action<7, function_action<7> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type (a1, a2, a3, a4, a5, a6, a7) ); } template inline const lambda_functor< lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7) { return lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type (a1, a2, a3, a4, a5, a6, a7) ); } #else template inline const lambda_functor< lambda_functor_base< action<7, function_action<7> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7) { return lambda_functor_base< action<7, function_action<7> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type (a1, a2, a3, a4, a5, a6, a7) ); } template inline const lambda_functor< lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7) { return lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type (a1, a2, a3, a4, a5, a6, a7) ); } template inline const lambda_functor< lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > > bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7) { return lambda_functor_base< action<7, function_action<7, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7 >::type (a1, a2, a3, a4, a5, a6, a7) ); } #endif // 8-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > > bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) { return lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type (a1, a2, a3, a4, a5, a6, a7, a8) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<8, function_action<8> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) { return lambda_functor_base< action<8, function_action<8> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type (a1, a2, a3, a4, a5, a6, a7, a8) ); } template inline const lambda_functor< lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) { return lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type (a1, a2, a3, a4, a5, a6, a7, a8) ); } #else template inline const lambda_functor< lambda_functor_base< action<8, function_action<8> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) { return lambda_functor_base< action<8, function_action<8> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type (a1, a2, a3, a4, a5, a6, a7, a8) ); } template inline const lambda_functor< lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) { return lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type (a1, a2, a3, a4, a5, a6, a7, a8) ); } template inline const lambda_functor< lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > > bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) { return lambda_functor_base< action<8, function_action<8, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8 >::type (a1, a2, a3, a4, a5, a6, a7, a8) ); } #endif // 9-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > > bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) { return lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<9, function_action<9> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) { return lambda_functor_base< action<9, function_action<9> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9) ); } template inline const lambda_functor< lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) { return lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9) ); } #else template inline const lambda_functor< lambda_functor_base< action<9, function_action<9> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) { return lambda_functor_base< action<9, function_action<9> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9) ); } template inline const lambda_functor< lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) { return lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9) ); } template inline const lambda_functor< lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > > bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) { return lambda_functor_base< action<9, function_action<9, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9) ); } #endif // 10-argument bind functions -------------------------- #ifndef BOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T template inline const lambda_functor< lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > > bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9, const Arg10& a10) { return lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > ( typename detail::bind_tuple_mapper< Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) ); } #endif #ifndef BOOST_LAMBDA_INCORRECT_BIND_OVERLOADING template inline const lambda_functor< lambda_functor_base< action<10, function_action<10> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9, const Arg10& a10) { return lambda_functor_base< action<10, function_action<10> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) ); } template inline const lambda_functor< lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9, const Arg10& a10) { return lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > ( typename detail::bind_tuple_mapper< const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) ); } #else template inline const lambda_functor< lambda_functor_base< action<10, function_action<10> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9, const Arg10& a10) { return lambda_functor_base< action<10, function_action<10> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) ); } template inline const lambda_functor< lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > > bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9, const Arg10& a10) { return lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > ( typename detail::bind_tuple_mapper< typename detail::constify_non_funcs::type, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) ); } template inline const lambda_functor< lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > > bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9, const Arg10& a10) { return lambda_functor_base< action<10, function_action<10, Result> >, typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type > ( typename detail::bind_tuple_mapper< Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9), const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9, const Arg10 >::type (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) ); } #endif } // namespace lambda } // namespace boost #endif