diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2009-04-19 19:12:21 (GMT) |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2010-09-03 10:57:10 (GMT) |
commit | da0e1a682362144b9f13b4c564f86e09efb681bb (patch) | |
tree | 8cbf68a93b055515b2a56d9e0667c530b27e39e2 /src/corelib/tools/qhash.h | |
parent | 605aa0cf1889110620dc0d5d84066be8177fe9c2 (diff) | |
download | Qt-da0e1a682362144b9f13b4c564f86e09efb681bb.zip Qt-da0e1a682362144b9f13b4c564f86e09efb681bb.tar.gz Qt-da0e1a682362144b9f13b4c564f86e09efb681bb.tar.bz2 |
C++0x move operators
This makes assignement faster from temporaries, as the operator is
fully inline, and doesn't do any atomic operations.
Reviewed-by: joao
Diffstat (limited to 'src/corelib/tools/qhash.h')
-rw-r--r-- | src/corelib/tools/qhash.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 14ed514..992ff33 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -283,6 +283,10 @@ public: inline ~QHash() { if (!d->ref.deref()) freeData(d); } QHash<Key, T> &operator=(const QHash<Key, T> &other); +#ifdef Q_COMPILER_RVALUE_REFS + inline QHash<Key, T> &operator=(QHash<Key, T> &&other) + { qSwap(d, other.d); return *this; } +#endif bool operator==(const QHash<Key, T> &other) const; inline bool operator!=(const QHash<Key, T> &other) const { return !(*this == other); } |