From 868a5342bb3af21bd9d078c420a43f4a57cb61a1 Mon Sep 17 00:00:00 2001 From: Ivan Solovev Date: Mon, 26 Feb 2024 17:54:36 +0100 Subject: [PATCH] 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 --- src/corelib/text/qutf8stringview.h | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/src/corelib/text/qutf8stringview.h b/src/corelib/text/qutf8stringview.h index cfbfb097c5b..972473794e7 100644 --- a/src/corelib/text/qutf8stringview.h +++ b/src/corelib/text/qutf8stringview.h @@ -314,28 +314,20 @@ private: QBasicUtf8StringView(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(lhs.data(), lhs.size()), - QBasicUtf8StringView(rhs.data(), rhs.size())); + && QtPrivate::equalStrings(QBasicUtf8StringView(lhs.data(), lhs.size()), + QBasicUtf8StringView(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