diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-07-06 16:55:15 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-07-19 10:33:55 +0000 |
commit | 5c442321220e9ba7818e2eba4fa22b159b6477ab (patch) | |
tree | d4ef326c6fb5ce4d3e13289be8a839f5b4570cd0 /src | |
parent | 46c5b8661222e86dca9363b14a84b46f959149a8 (diff) |
QSet/QQueue/QStack: use compiler-generated special member functions
They do the right thing (except move special member functions
on MSVC, but that's MSVC's problem).
Change-Id: I699e1be83c0568821f8c6b84394a2713bb22e8e7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/tools/qhash.h | 3 | ||||
-rw-r--r-- | src/corelib/tools/qqueue.h | 3 | ||||
-rw-r--r-- | src/corelib/tools/qset.h | 12 | ||||
-rw-r--r-- | src/corelib/tools/qstack.h | 3 |
4 files changed, 8 insertions, 13 deletions
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 5a4175ec5d..94cd4c0205 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -916,6 +916,9 @@ public: insert(it->first, it->second); } #endif + // compiler-generated copy/move ctors/assignment operators are fine! + // compiler-generated destructor is fine! + QMultiHash(const QHash<Key, T> &other) : QHash<Key, T>(other) {} void swap(QMultiHash &other) { QHash<Key, T>::swap(other); } // prevent QMultiHash<->QHash swaps diff --git a/src/corelib/tools/qqueue.h b/src/corelib/tools/qqueue.h index 9d5bda1210..7a7abab070 100644 --- a/src/corelib/tools/qqueue.h +++ b/src/corelib/tools/qqueue.h @@ -43,8 +43,7 @@ template <class T> class QQueue : public QList<T> { public: - inline QQueue() {} - inline ~QQueue() {} + // compiler-generated special member functions are fine! inline void swap(QQueue<T> &other) { QList<T>::swap(other); } // prevent QList<->QQueue swaps #ifndef Q_QDOC // bring in QList::swap(int, int). We cannot say using QList<T>::swap, diff --git a/src/corelib/tools/qset.h b/src/corelib/tools/qset.h index 5a9c75fe07..aeba6cf68d 100644 --- a/src/corelib/tools/qset.h +++ b/src/corelib/tools/qset.h @@ -57,15 +57,9 @@ public: insert(*it); } #endif - inline QSet(const QSet<T> &other) : q_hash(other.q_hash) {} - - inline QSet<T> &operator=(const QSet<T> &other) - { q_hash = other.q_hash; return *this; } -#ifdef Q_COMPILER_RVALUE_REFS - inline QSet(QSet &&other) : q_hash(qMove(other.q_hash)) {} - inline QSet<T> &operator=(QSet<T> &&other) - { qSwap(q_hash, other.q_hash); return *this; } -#endif + // compiler-generated copy/move ctor/assignment operators are fine! + // compiler-generated destructor is fine! + inline void swap(QSet<T> &other) { q_hash.swap(other.q_hash); } inline bool operator==(const QSet<T> &other) const diff --git a/src/corelib/tools/qstack.h b/src/corelib/tools/qstack.h index fa05e22de1..278e89ca2f 100644 --- a/src/corelib/tools/qstack.h +++ b/src/corelib/tools/qstack.h @@ -43,8 +43,7 @@ template<class T> class QStack : public QVector<T> { public: - inline QStack() {} - inline ~QStack() {} + // compiler-generated special member functions are fine! inline void swap(QStack<T> &other) { QVector<T>::swap(other); } // prevent QVector<->QStack swaps inline void push(const T &t) { QVector<T>::append(t); } T pop(); |