usaxena95 added a comment. In D134529#3852990 <https://reviews.llvm.org/D134529#3852990>, @erichkeane wrote:
> Note that @BertalanD noticed an issue with what I expect to be this patch: > https://godbolt.org/z/Wjb9rsEYG > > Can someone more knowledgable about this paper please make sure it is an > intended change? It seems to me that the reversing behavior of the equality > operators is a little awkward here (note that commenting out != makes that > 'work' again). This is intentional. Example from https://eel.is/c++draft/over.match.oper#4 struct A {}; template<typename T> bool operator==(A, T); // #1 bool a1 = 0 == A(); // OK, calls reversed #1 template<typename T> bool operator!=(A, T); bool a2 = 0 == A(); // error, #1 is not a rewrite target Adding a matching `operator!=` disables reversing arguments (C++17 mode). The LHS in this case should provide a `operator==`. The diagnostic might not be the most helpful at this point is. You can choose to - Remove `operator!=`. Allows assuming `x==y` is equivalent to `y==x` and therefore uses the same function with reversed arguments. - Write `s == c` instead of `c == s`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134529/new/ https://reviews.llvm.org/D134529 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits