From f89803e459ca02ad4be0c2e1620b80b0cb248642 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 3 Jul 2015 13:24:31 +0200 Subject: Make container move semantics consistent Make all containers (excepting QVarLengthArray) - nothrow default-constructible - nothrow move-constructible - nothrow move-assignable - nothrow swappable [ChangeLog][QtCore] All containers (with the exception of QVarLengthArray, but including QSharedPointer) are now nothrow_default_constructible, nothrow_move_constructible, nothrow_move_assignable, and nothrow-swappable. Change-Id: I12138d262f9f7f600f0e1218137da208c12e7c0a Reviewed-by: Thiago Macieira --- src/corelib/tools/qmap.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/corelib/tools/qmap.h') diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h index df2e5f1caf..fe9ddaaa32 100644 --- a/src/corelib/tools/qmap.h +++ b/src/corelib/tools/qmap.h @@ -321,7 +321,7 @@ class QMap QMapData *d; public: - inline QMap() : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) { } + inline QMap() Q_DECL_NOTHROW : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) { } #ifdef Q_COMPILER_INITIALIZER_LISTS inline QMap(std::initializer_list > list) : d(static_cast *>(const_cast(&QMapDataBase::shared_null))) @@ -336,17 +336,17 @@ public: QMap &operator=(const QMap &other); #ifdef Q_COMPILER_RVALUE_REFS - inline QMap(QMap &&other) + inline QMap(QMap &&other) Q_DECL_NOTHROW : d(other.d) { other.d = static_cast *>( const_cast(&QMapDataBase::shared_null)); } - inline QMap &operator=(QMap &&other) + inline QMap &operator=(QMap &&other) Q_DECL_NOTHROW { QMap moved(std::move(other)); swap(moved); return *this; } #endif - inline void swap(QMap &other) { qSwap(d, other.d); } + inline void swap(QMap &other) Q_DECL_NOTHROW { qSwap(d, other.d); } explicit QMap(const typename std::map &other); std::map toStdMap() const; @@ -1168,7 +1168,7 @@ template class QMultiMap : public QMap { public: - QMultiMap() {} + QMultiMap() Q_DECL_NOTHROW {} #ifdef Q_COMPILER_INITIALIZER_LISTS inline QMultiMap(std::initializer_list > list) { @@ -1180,7 +1180,7 @@ public: #ifdef Q_COMPILER_RVALUE_REFS QMultiMap(QMap &&other) Q_DECL_NOTHROW : QMap(std::move(other)) {} #endif - inline void swap(QMultiMap &other) { QMap::swap(other); } + void swap(QMultiMap &other) Q_DECL_NOTHROW { QMap::swap(other); } inline typename QMap::iterator replace(const Key &key, const T &value) { return QMap::insert(key, value); } -- cgit v1.2.3