std::experimental::ranges::WeaklyEqualityComparableWith
Defined in header <experimental/ranges/concepts>
|
||
template
<
class T, class U >
concept bool WeaklyEqualityComparableWith =
|
(ranges TS) | |
The concept WeaklyEqualityComparableWith<T, U>
specifies that an object of type T
and an object of type U
can be compared for equality with each other (in either order) using both ==
and !=
, and the results of the comparisons are consistent. More formally, WeaklyEqualityComparableWith<T, U>
-
t
, an lvalue of type const std::remove_reference_t <T> -
u
, an lvalue of type const std::remove_reference_t <U>
the following are true:
- t == u, u == t, t != u,u != t
- bool (u == t) == bool (t == u)
- bool (t ! = u) == ! bool (t == u)
- bool (u ! = t) == bool (t ! = u)
Equality preservation
An expression is equality preserving if it results in equal outputs given equal inputs.
- The inputs to an expression consist of its operands.
- The outputs of an expression consist of its result and all operands modified by the expression (if any).
Every expression required to be equality preserving is further required to be stable
Unless noted otherwise, every expression used in a requires-expression
Implicit expression variations
A requires-expression implicit expression variations
See also
specifies that operator == is an equivalence relation (concept) |