[compiler-rt] Replace bool operator== for VersionType in sanitizer_mac.h (PR #135068)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 10 15:23:37 PDT 2025


================
@@ -37,16 +37,18 @@ struct VersionBase {
 
   VersionBase(u16 major, u16 minor) : major(major), minor(minor) {}
 
-  bool operator==(const VersionType &other) const {
-    return major == other.major && minor == other.minor;
-  }
   bool operator>=(const VersionType &other) const {
     return major > other.major ||
            (major == other.major && minor >= other.minor);
   }
   bool operator<(const VersionType &other) const { return !(*this >= other); }
 };
 
+template <typename VersionType>
----------------
vitalybuka wrote:

Will this work?

```
struct VersionBase {
  u16 major;
  u16 minor;

  VersionBase(u16 major, u16 minor) : major(major), minor(minor) {}

  template <typename VersionType>
  bool operator==(const VersionType &other) const {
    return major == other.major && minor == other.minor;
  }

  template <typename VersionType>
  bool operator>=(const VersionType &other) const {
    return major > other.major ||
           (major == other.major && minor >= other.minor);
  }

  template <typename VersionType>
  bool operator<(const VersionType &other) const { return !(*this >= other); }
};
```

https://github.com/llvm/llvm-project/pull/135068


More information about the llvm-commits mailing list