diff -r 000000000000 -r e4d67989cc36 ossrv_pub/boost_apis/boost/lambda/detail/bind_functions.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ossrv_pub/boost_apis/boost/lambda/detail/bind_functions.hpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,1879 @@ +// -- bind_functions.hpp -- Boost Lambda Library +// +// Copyright (C) 1999, 2000 Jaakko Järvi (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