summaryrefslogtreecommitdiffstats
path: root/src/corelib/text/qstring.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-03 10:06:35 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-04 08:58:26 +0100
commit02c2a58cdf0e4cb4989f14e751723b6573a7ebbc (patch)
tree1ff8aaae6fb6d9e15697740ca1deabc752c8e05f /src/corelib/text/qstring.h
parente674ee5328e3f8f5cd9490afb022b686313917f3 (diff)
Avoid allocation on char16_t* comparisons
Compare as QStringView Change-Id: I151d17ac20da30266776ca369ca8221017174f84 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/text/qstring.h')
-rw-r--r--src/corelib/text/qstring.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h
index 91edd77a17..46c2fd3f66 100644
--- a/src/corelib/text/qstring.h
+++ b/src/corelib/text/qstring.h
@@ -877,19 +877,19 @@ public:
friend bool operator<=(std::nullptr_t, const QString &s2) noexcept { return s2 >= nullptr; }
friend bool operator>=(std::nullptr_t, const QString &s2) noexcept { return s2 <= nullptr; }
- friend bool operator==(const QString &s1, const char16_t *s2) { return s1 == QString::fromUtf16(s2); }
- friend bool operator!=(const QString &s1, const char16_t *s2) { return s1 != QString::fromUtf16(s2); }
- friend bool operator< (const QString &s1, const char16_t *s2) { return s1 < QString::fromUtf16(s2); }
- friend bool operator> (const QString &s1, const char16_t *s2) { return s1 > QString::fromUtf16(s2); }
- friend bool operator<=(const QString &s1, const char16_t *s2) { return s1 <= QString::fromUtf16(s2); }
- friend bool operator>=(const QString &s1, const char16_t *s2) { return s1 >= QString::fromUtf16(s2); }
-
- friend bool operator==(const char16_t *s1, const QString &s2) { return s2 == s1; }
- friend bool operator!=(const char16_t *s1, const QString &s2) { return s2 != s1; }
- friend bool operator< (const char16_t *s1, const QString &s2) { return s2 > s1; }
- friend bool operator> (const char16_t *s1, const QString &s2) { return s2 < s1; }
- friend bool operator<=(const char16_t *s1, const QString &s2) { return s2 >= s1; }
- friend bool operator>=(const char16_t *s1, const QString &s2) { return s2 <= s1; }
+ friend bool operator==(const QString &s1, const char16_t *s2) noexcept { return s1 == QStringView(s2); }
+ friend bool operator!=(const QString &s1, const char16_t *s2) noexcept { return s1 != QStringView(s2); }
+ friend bool operator< (const QString &s1, const char16_t *s2) noexcept { return s1 < QStringView(s2); }
+ friend bool operator> (const QString &s1, const char16_t *s2) noexcept { return s1 > QStringView(s2); }
+ friend bool operator<=(const QString &s1, const char16_t *s2) noexcept { return s1 <= QStringView(s2); }
+ friend bool operator>=(const QString &s1, const char16_t *s2) noexcept { return s1 >= QStringView(s2); }
+
+ friend bool operator==(const char16_t *s1, const QString &s2) noexcept { return s2 == s1; }
+ friend bool operator!=(const char16_t *s1, const QString &s2) noexcept { return s2 != s1; }
+ friend bool operator< (const char16_t *s1, const QString &s2) noexcept { return s2 > s1; }
+ friend bool operator> (const char16_t *s1, const QString &s2) noexcept { return s2 < s1; }
+ friend bool operator<=(const char16_t *s1, const QString &s2) noexcept { return s2 >= s1; }
+ friend bool operator>=(const char16_t *s1, const QString &s2) noexcept { return s2 <= s1; }
// QChar <> QString
friend inline bool operator==(QChar lhs, const QString &rhs) noexcept