5 #ifndef VCCC_CONCEPTS_EQUALITY_COMPARABLE_HPP_
6 #define VCCC_CONCEPTS_EQUALITY_COMPARABLE_HPP_
40 const std::remove_reference_t<U>& >
43 struct equality_comparable_with_impl_2
46 common_reference_t< const std::remove_reference_t<T>&,
47 const std::remove_reference_t<U>&> >,
48 weakly_equality_comparable_with<T, U>
51 template<
typename T,
typename U>
52 struct equality_comparable_with_impl_2<T, U, false> : std::false_type {};
58 equality_comparable<T>,
59 equality_comparable<U>,
60 comparison_common_type_with<T, U>
63 struct equality_comparable_with_impl_1 : equality_comparable_with_impl_2<T, U> {};
64 template<
typename T,
typename U>
65 struct equality_comparable_with_impl_1<T, U, false> : std::false_type {};
78 template<
typename T,
typename U>
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: common_reference.hpp:51
Definition: conjunction.hpp:22
specifies that operator == is an equivalence relation
Definition: equality_comparable.hpp:79
specifies that operator == is an equivalence relation
Definition: equality_comparable.hpp:30
Definition: has_typename_type.hpp:18
specifies that two different objects can be compared for equality with each other (in either order) u...
Definition: weakly_equality_comparable_with.hpp:51