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