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>
This commit is contained in:
Ivan Solovev 2024-02-15 16:39:34 +01:00
parent 77bec4f7c8
commit 7500577a92
2 changed files with 20 additions and 25 deletions

View File

@ -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.

View File

@ -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: