stl2 icon indicating copy to clipboard operation
stl2 copied to clipboard

Let E be an *equality-preserving* expression

Open CaseyCarter opened this issue 7 years ago • 1 comments

[concepts.lib.callable.relation]/1 states:

Let r be an expression such that decltype((r)) is R, t be an expression such that decltype((t)) is T, u be an expression such that decltype((u)) is U, and C be common_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.

CaseyCarter avatar Jan 11 '18 01:01 CaseyCarter

Dropping to P2.

ericniebler avatar Apr 08 '19 23:04 ericniebler