Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::v3::concepts::EqualityComparable Struct Reference

Public Member Functions

template<typename T >
auto requires_ (T &&t) -> decltype( concepts::valid_expr( concepts::convertible_to< bool >(t==t), concepts::convertible_to< bool >(t!=t) ))
 
template<typename T , typename U , meta::if_< std::is_same< T, U >, int > = 0>
auto requires_ (T &&, U &&) -> decltype( concepts::valid_expr( concepts::model_of< EqualityComparable, T >() ))
 
template<typename T , typename U , meta::if_c<!std::is_same< T, U >::value, int > = 0, typename C = CommonReference::reference_t<T const &, U const &>>
auto requires_ (T &&, U &&) -> decltype( concepts::valid_expr( concepts::model_of< EqualityComparable, T >(), concepts::model_of< EqualityComparable, U >(), concepts::model_of< WeaklyEqualityComparable, T, U >(), concepts::model_of< CommonReference, T const &, U const & >(), concepts::model_of< EqualityComparable, C >() ))