diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2024-02-26 17:54:36 +0100 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2024-03-02 00:12:54 +0100 |
commit | 868a5342bb3af21bd9d078c420a43f4a57cb61a1 (patch) | |
tree | 36d058b271462928d9f4b2a44d65742499fcb3f3 /src/corelib/text | |
parent | 7068418a13c7149f81dade96000b99b1c37c0df8 (diff) |
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>
Diffstat (limited to 'src/corelib/text')
-rw-r--r-- | src/corelib/text/qutf8stringview.h | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/src/corelib/text/qutf8stringview.h b/src/corelib/text/qutf8stringview.h index cfbfb097c5..972473794e 100644 --- a/src/corelib/text/qutf8stringview.h +++ b/src/corelib/text/qutf8stringview.h @@ -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 |