From 48c8eef9306e004a2c92ed96f8f1462148872b5b Mon Sep 17 00:00:00 2001 From: Ivan Solovev Date: Mon, 26 Aug 2024 19:30:40 +0200 Subject: [PATCH] serialization: remove incorrect noexcept on comparison operators [2/2] This patch is about removing noexcept on functions that use Q_ASSERT. The argument is that in these cases Q_ASSERTs act as precondition checks, so we should probably follow the Lakos rule. Although, technically the change is fine, because the current implementation of Q_ASSERT is marked as noexcept(true), there are some ideas of changing that in future, so we should not be setting in stone something we can't change later. Found in 6.8 API review. Change-Id: I1d4aa228c713821c0ebbfc0f3b956d29fe652ed8 Reviewed-by: Marc Mutz (cherry picked from commit 5ac15093dcbaf92ac166961f5e8bfe9418cc15c0) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/serialization/qcbormap.h | 18 +++++++++--------- src/corelib/serialization/qjsonarray.h | 18 +++++++++--------- src/corelib/serialization/qjsonobject.h | 18 +++++++++--------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/corelib/serialization/qcbormap.h b/src/corelib/serialization/qcbormap.h index d2fd7692403..1fa93b85157 100644 --- a/src/corelib/serialization/qcbormap.h +++ b/src/corelib/serialization/qcbormap.h @@ -98,14 +98,14 @@ public: } static Qt::strong_ordering compareThreeWay_helper(const Iterator &lhs, - const Iterator &rhs) noexcept + const Iterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.i, rhs.item.i); } static Qt::strong_ordering compareThreeWay_helper(const Iterator &lhs, - const ConstIterator &rhs) noexcept + const ConstIterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.i, rhs.item.i); @@ -117,21 +117,21 @@ public: return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const Iterator &lhs, - const Iterator &rhs) noexcept + const Iterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(Iterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(Iterator) friend bool comparesEqual(const Iterator &lhs, const ConstIterator &rhs) noexcept { return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const Iterator &lhs, - const ConstIterator &rhs) noexcept + const ConstIterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(Iterator, ConstIterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(Iterator, ConstIterator) }; class ConstIterator { @@ -202,7 +202,7 @@ public: return lhs.item.d == rhs.item.d && lhs.item.i == rhs.item.i; } static Qt::strong_ordering compareThreeWay_helper(const ConstIterator &lhs, - const ConstIterator &rhs) noexcept + const ConstIterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.i, rhs.item.i); @@ -214,11 +214,11 @@ public: return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const ConstIterator &lhs, - const ConstIterator &rhs) noexcept + const ConstIterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(ConstIterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(ConstIterator) }; QCborMap() noexcept; diff --git a/src/corelib/serialization/qjsonarray.h b/src/corelib/serialization/qjsonarray.h index 4313d8ee943..6e4dc6dd5ff 100644 --- a/src/corelib/serialization/qjsonarray.h +++ b/src/corelib/serialization/qjsonarray.h @@ -137,14 +137,14 @@ public: } static Qt::strong_ordering compareThreeWay_helper(const iterator &lhs, - const iterator &rhs) noexcept + const iterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.index, rhs.item.index); } static Qt::strong_ordering compareThreeWay_helper(const iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.index, rhs.item.index); @@ -156,21 +156,21 @@ public: return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const iterator &lhs, - const iterator &rhs) noexcept + const iterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(iterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(iterator) friend bool comparesEqual(const iterator &lhs, const const_iterator &rhs) noexcept { return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(iterator, const_iterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(iterator, const_iterator) QJsonValueRef item; friend class QJsonArray; @@ -230,7 +230,7 @@ public: return lhs.item.d == rhs.item.d && lhs.item.index == rhs.item.index; } static Qt::strong_ordering compareThreeWay_helper(const const_iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.index, rhs.item.index); @@ -242,11 +242,11 @@ public: return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const const_iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(const_iterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(const_iterator) QJsonValueConstRef item; friend class QJsonArray; }; diff --git a/src/corelib/serialization/qjsonobject.h b/src/corelib/serialization/qjsonobject.h index a0b8328b1b9..fb653094c9c 100644 --- a/src/corelib/serialization/qjsonobject.h +++ b/src/corelib/serialization/qjsonobject.h @@ -152,13 +152,13 @@ public: } static Qt::strong_ordering compareThreeWay_helper(const iterator &lhs, - const iterator &rhs) noexcept + const iterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.index, rhs.item.index); } static Qt::strong_ordering compareThreeWay_helper(const iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.index, rhs.item.index); @@ -170,22 +170,22 @@ public: return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const iterator &lhs, - const iterator &rhs) noexcept + const iterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(iterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(iterator) friend bool comparesEqual(const iterator &lhs, const const_iterator &rhs) noexcept { return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(iterator, const_iterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(iterator, const_iterator) }; friend class iterator; @@ -259,7 +259,7 @@ public: return lhs.item.d == rhs.item.d && lhs.item.index == rhs.item.index; } static Qt::strong_ordering compareThreeWay_helper(const const_iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { Q_ASSERT(lhs.item.d == rhs.item.d); return Qt::compareThreeWay(lhs.item.index, rhs.item.index); @@ -271,11 +271,11 @@ public: return comparesEqual_helper(lhs, rhs); } friend Qt::strong_ordering compareThreeWay(const const_iterator &lhs, - const const_iterator &rhs) noexcept + const const_iterator &rhs) { return compareThreeWay_helper(lhs, rhs); } - Q_DECLARE_STRONGLY_ORDERED(const_iterator) + Q_DECLARE_STRONGLY_ORDERED_NON_NOEXCEPT(const_iterator) }; friend class const_iterator;