$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.