================
@@ -1126,9 +1126,6 @@ class QualType {
   /// Return true if this is a trivially relocatable type.
   bool isTriviallyRelocatableType(const ASTContext &Context) const;
 
-  /// Return true if this is a trivially equality comparable type.
-  bool isTriviallyEqualityComparableType(const ASTContext &Context) const;
----------------
philnik777 wrote:

The main problem with this is that you don't have to have a member. Take this 
test case for example:
```c++
struct NotTriviallyEqualityComparableMoreConstrainedExternalOp {
  int i;
  bool operator==(const 
NotTriviallyEqualityComparableMoreConstrainedExternalOp&) const = default;
};

bool operator==(const NotTriviallyEqualityComparableMoreConstrainedExternalOp&,
                const NotTriviallyEqualityComparableMoreConstrainedExternalOp&) 
__attribute__((enable_if(true, ""))) {}

static_assert(!__is_trivially_equality_comparable(NotTriviallyEqualityComparableMoreConstrainedExternalOp));
```
I'm sure this can also be written with some `requires` clause. Without the 
builtin telling the library there is no way to figure out that a free function 
instead of the member is called.


https://github.com/llvm/llvm-project/pull/93113
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to