summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2024-02-15 16:39:34 +0100
committerIvan Solovev <ivan.solovev@qt.io>2024-02-20 01:04:34 +0100
commit7500577a92b74e68eeda91816017c8324c436eb1 (patch)
treefb4020a8b5b78a92e5b0b4f75a15a9016920ec1f
parent77bec4f7c837cba16fc746ada9de370ae0b23922 (diff)
QStringView: use new comparison helper macros
Replace the friend relational operators for QSV vs QSV and QSV vs QChar comparison. Task-number: QTBUG-117661 Change-Id: I547f69dac67c27b04864e56b383e75e213a17bfe Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--src/corelib/text/qstringview.cpp12
-rw-r--r--src/corelib/text/qstringview.h33
2 files changed, 20 insertions, 25 deletions
diff --git a/src/corelib/text/qstringview.cpp b/src/corelib/text/qstringview.cpp
index 0ddd923655..29b83ffe8f 100644
--- a/src/corelib/text/qstringview.cpp
+++ b/src/corelib/text/qstringview.cpp
@@ -766,12 +766,12 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \fn QStringView::operator==(QStringView lhs, QStringView rhs)
- \fn QStringView::operator!=(QStringView lhs, QStringView rhs)
- \fn QStringView::operator< (QStringView lhs, QStringView rhs)
- \fn QStringView::operator<=(QStringView lhs, QStringView rhs)
- \fn QStringView::operator> (QStringView lhs, QStringView rhs)
- \fn QStringView::operator>=(QStringView lhs, QStringView rhs)
+ \fn QStringView::operator==(const QStringView &lhs, const QStringView &rhs)
+ \fn QStringView::operator!=(const QStringView &lhs, const QStringView &rhs)
+ \fn QStringView::operator< (const QStringView &lhs, const QStringView &rhs)
+ \fn QStringView::operator<=(const QStringView &lhs, const QStringView &rhs)
+ \fn QStringView::operator> (const QStringView &lhs, const QStringView &rhs)
+ \fn QStringView::operator>=(const QStringView &lhs, const QStringView &rhs)
Operators for comparing \a lhs to \a rhs.
diff --git a/src/corelib/text/qstringview.h b/src/corelib/text/qstringview.h
index 2e099a9ba5..048c1b005d 100644
--- a/src/corelib/text/qstringview.h
+++ b/src/corelib/text/qstringview.h
@@ -360,27 +360,22 @@ public:
#endif
// QStringView <> QStringView
- friend bool operator==(QStringView lhs, QStringView rhs) noexcept { return lhs.size() == rhs.size() && QtPrivate::equalStrings(lhs, rhs); }
- friend bool operator!=(QStringView lhs, QStringView rhs) noexcept { return !(lhs == rhs); }
- friend bool operator< (QStringView lhs, QStringView rhs) noexcept { return QtPrivate::compareStrings(lhs, rhs) < 0; }
- friend bool operator<=(QStringView lhs, QStringView rhs) noexcept { return QtPrivate::compareStrings(lhs, rhs) <= 0; }
- friend bool operator> (QStringView lhs, QStringView rhs) noexcept { return QtPrivate::compareStrings(lhs, rhs) > 0; }
- friend bool operator>=(QStringView lhs, QStringView rhs) noexcept { return QtPrivate::compareStrings(lhs, rhs) >= 0; }
+ friend bool comparesEqual(const QStringView &lhs, const QStringView &rhs) noexcept
+ { return lhs.size() == rhs.size() && QtPrivate::equalStrings(lhs, rhs); }
+ friend Qt::strong_ordering
+ compareThreeWay(const QStringView &lhs, const QStringView &rhs) noexcept
+ {
+ const int res = QtPrivate::compareStrings(lhs, rhs);
+ return Qt::compareThreeWay(res, 0);
+ }
+ Q_DECLARE_STRONGLY_ORDERED(QStringView)
// QStringView <> QChar
- friend bool operator==(QStringView lhs, QChar rhs) noexcept { return lhs == QStringView(&rhs, 1); }
- friend bool operator!=(QStringView lhs, QChar rhs) noexcept { return lhs != QStringView(&rhs, 1); }
- friend bool operator< (QStringView lhs, QChar rhs) noexcept { return lhs < QStringView(&rhs, 1); }
- friend bool operator<=(QStringView lhs, QChar rhs) noexcept { return lhs <= QStringView(&rhs, 1); }
- friend bool operator> (QStringView lhs, QChar rhs) noexcept { return lhs > QStringView(&rhs, 1); }
- friend bool operator>=(QStringView lhs, QChar rhs) noexcept { return lhs >= QStringView(&rhs, 1); }
-
- friend bool operator==(QChar lhs, QStringView rhs) noexcept { return QStringView(&lhs, 1) == rhs; }
- friend bool operator!=(QChar lhs, QStringView rhs) noexcept { return QStringView(&lhs, 1) != rhs; }
- friend bool operator< (QChar lhs, QStringView rhs) noexcept { return QStringView(&lhs, 1) < rhs; }
- friend bool operator<=(QChar lhs, QStringView rhs) noexcept { return QStringView(&lhs, 1) <= rhs; }
- friend bool operator> (QChar lhs, QStringView rhs) noexcept { return QStringView(&lhs, 1) > rhs; }
- friend bool operator>=(QChar lhs, QStringView rhs) noexcept { return QStringView(&lhs, 1) >= rhs; }
+ friend bool comparesEqual(const QStringView &lhs, QChar rhs) noexcept
+ { return lhs.size() == 1 && lhs[0] == rhs; }
+ friend Qt::strong_ordering compareThreeWay(const QStringView &lhs, QChar rhs) noexcept
+ { return compareThreeWay(lhs, QStringView(&rhs, 1)); }
+ Q_DECLARE_STRONGLY_ORDERED(QStringView, QChar)
//
// STL compatibility API: