Use remove_cvref_t

This commit is contained in:
Peter Dimov 2020-09-08 04:45:46 +03:00
parent 8c99e5db86
commit 6fe0ff9004

View File

@ -16,7 +16,9 @@ namespace lambda2
namespace detail namespace detail
{ {
template<class T, class T2 = std::remove_reference_t<T>> using is_lambda_expression = template<class T> using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
template<class T, class T2 = remove_cvref_t<T>> using is_lambda_expression =
std::integral_constant<bool, std::is_placeholder<T2>::value || std::is_bind_expression<T2>::value>; std::integral_constant<bool, std::is_placeholder<T2>::value || std::is_bind_expression<T2>::value>;
template<class A> using enable_unary_lambda = template<class A> using enable_unary_lambda =
@ -38,8 +40,7 @@ template<class A, class B> using enable_binary_lambda =
template<class A, class B, class = detail::enable_binary_lambda<A, B>> \ template<class A, class B, class = detail::enable_binary_lambda<A, B>> \
auto operator op( A&& a, B&& b ) \ auto operator op( A&& a, B&& b ) \
{ \ { \
return std::bind( std::fn<>(), std::forward<A>(a), \ return std::bind( std::fn<>(), std::forward<A>(a), std::forward<B>(b) ); \
std::forward<B>(b) ); \
} }
BOOST_LAMBDA2_BINARY_LAMBDA(+, plus) BOOST_LAMBDA2_BINARY_LAMBDA(+, plus)