diff --git a/include/hidl/HidlSupport.h b/include/hidl/HidlSupport.h
index 07eebeb..37c4431 100644
--- a/include/hidl/HidlSupport.h
+++ b/include/hidl/HidlSupport.h
@@ -76,14 +76,6 @@
     status_t writeEmbeddedToParcel(
             Parcel *parcel, size_t parentHandle, size_t parentOffset) const;
 
-    inline bool operator==(const char *s) const {
-        return strcmp(mBuffer, s) == 0;
-    }
-
-    inline bool operator!=(const char *s) const {
-        return !(operator==(s));
-    }
-
     // offsetof(hidl_string, mBuffer) exposed since mBuffer is private.
     static const size_t kOffsetOfBuffer;
 
@@ -99,6 +91,22 @@
     void moveFrom(hidl_string &&);
 };
 
+inline bool operator==(const hidl_string &hs, const char *s) {
+    return strcmp(hs.c_str(), s) == 0;
+}
+
+inline bool operator!=(const hidl_string &hs, const char *s) {
+    return !(hs == s);
+}
+
+inline bool operator==(const char *s, const hidl_string &hs) {
+    return strcmp(hs.c_str(), s) == 0;
+}
+
+inline bool operator!=(const char *s, const hidl_string &hs) {
+    return !(s == hs);
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 
 template<typename T>
