stl2
stl2 copied to clipboard
Let E be an *equality-preserving* expression
[concepts.lib.callable.relation]/1 states:
Let
r
be an expression such thatdecltype((r))
isR
,t
be an expression such thatdecltype((t))
isT
,u
be an expression such thatdecltype((u))
isU
, andC
becommon_reference_t<const remove_reference_t<T>&, const remove_reference_t<U>&>
.Relation<R, T, U>
is satisfied only if
bool(r(t, u)) == bool(r(C(t), C(u)))
.
bool(r(u, t)) == bool(r(C(u), C(t)))
.
which really only makes sense if r
, t
, and u
are equality-preserving expressions. I suspect this problem is endemic and that all of the concept definitions need to be audited for expressions that must be equality-preserving yet are not specified as such.
Dropping to P2.