> Le 15 mars 2020 à 20:14, Richard Smith <rich...@metafoo.co.uk> a écrit :
> 
> No, we still don't have a resolution from the C++ committee, but it's being 
> discussed by various implementers, and we hope to present to the committee a 
> suggested set of changes to minimize the pain to users as soon as we can. I 
> expect we will change /something/ as a DR fix against C++20, but the exact 
> details are unclear.

Hi,

Thanks for the heads up.

I am not sure how valid is my request, but I found a case where I wished 
-Wambiguous-reversed-operator would avoid what today with clang 10 is a strong 
error.

Consider this code: the == comparison warning is avoidable with 
-Wambiguous-reversed-operator, but not the != comparison. This make existing 
C++17 code behavior non-symetric when migrating to pack C++20, and a bit 
awkward for users:

template <typename T> struct A
{
    bool operator==(const T&) const;
    bool operator!=(const T&) const;
};

struct B : public A<B> {};

bool f()
{
    bool a1 = B() == B(); // Works, only a -Wambiguous-reversed-operator warning
    bool a2 = B() != B(); // Strong error, which you can't avoid with 
-Wno-ambiguous-reversed-operator flag
}

Do you think that in the meantime while we wait for the C++ committee to 
standardize a real DR clang 10 should be update to also just warns in such 
cases involving != ?

Cheers,
Romain
_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to