Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2023-02-20 22:45:33


On 2/21/23 01:00, Gavin Lambert via Boost wrote:
> On 21/02/2023 00:30, Andrey Semashev wrote:
>> I think you're missing the point that operator== isn't always used to
>> implement equivalence. This is also true wrt. other operators and their
>> default function. We have a number of lambda libraries in Boost, as well
>> as Boost.Proto and Boost.Spirit that wouldn't have existed if we
>> followed your logic.
>
> No, I addressed that.  Even in lambda libraries, operator== should be
> used only for equivalence (as an indirection rather than directly), and
> as such it should still be commutative and agnostic of specific order.
> Assuming that, it shouldn't be broken by the C++20 changes.

In template expressions, operators are generally not commutative because
the type of the result depends on types of the left and right arguments.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk