📄 bind_functions.hpp
字号:
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)
);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -