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