QUtf8StringView: use more comparison helper macros

Convert the last relational operators to using the macros.

Task-number: QTBUG-117661
Change-Id: I5c4c890527d1a3c9500e98f47881d2e17b101ca9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Ivan Solovev 2024-02-26 17:54:36 +01:00
parent 7068418a13
commit 868a5342bb

View File

@ -314,28 +314,20 @@ private:
QBasicUtf8StringView<false>(rhs.data(), rhs.size()));
}
[[nodiscard]] friend inline bool operator==(QBasicUtf8StringView lhs, QBasicUtf8StringView rhs) noexcept
friend bool
comparesEqual(const QBasicUtf8StringView &lhs, const QBasicUtf8StringView &rhs) noexcept
{
return lhs.size() == rhs.size()
&& QtPrivate::equalStrings(QBasicUtf8StringView<false>(lhs.data(), lhs.size()),
QBasicUtf8StringView<false>(rhs.data(), rhs.size()));
&& QtPrivate::equalStrings(QBasicUtf8StringView<false>(lhs.data(), lhs.size()),
QBasicUtf8StringView<false>(rhs.data(), rhs.size()));
}
[[nodiscard]] friend inline bool operator!=(QBasicUtf8StringView lhs, QBasicUtf8StringView rhs) noexcept
{ return !operator==(lhs, rhs); }
#ifdef __cpp_impl_three_way_comparison
[[nodiscard]] friend inline auto operator<=>(QBasicUtf8StringView lhs, QBasicUtf8StringView rhs) noexcept
{ return QBasicUtf8StringView::compare(lhs, rhs) <=> 0; }
#else
[[nodiscard]] friend inline bool operator<=(QBasicUtf8StringView lhs, QBasicUtf8StringView rhs) noexcept
{ return QBasicUtf8StringView::compare(lhs, rhs) <= 0; }
[[nodiscard]] friend inline bool operator>=(QBasicUtf8StringView lhs, QBasicUtf8StringView rhs) noexcept
{ return QBasicUtf8StringView::compare(lhs, rhs) >= 0; }
[[nodiscard]] friend inline bool operator<(QBasicUtf8StringView lhs, QBasicUtf8StringView rhs) noexcept
{ return QBasicUtf8StringView::compare(lhs, rhs) < 0; }
[[nodiscard]] friend inline bool operator>(QBasicUtf8StringView lhs, QBasicUtf8StringView rhs) noexcept
{ return QBasicUtf8StringView::compare(lhs, rhs) > 0; }
#endif
friend Qt::strong_ordering
compareThreeWay(const QBasicUtf8StringView &lhs, const QBasicUtf8StringView &rhs) noexcept
{
const int res = QBasicUtf8StringView::compare(lhs, rhs);
return Qt::compareThreeWay(res, 0);
}
Q_DECLARE_STRONGLY_ORDERED(QBasicUtf8StringView)
friend bool
comparesEqual(const QBasicUtf8StringView &lhs, const QLatin1StringView &rhs) noexcept