Add some easy move constructors
These are easy, since they can be inline. Most types that would benefit from move constructors can't have inline move constructors because these types use smart pointers whose destructor is invoked in the type's move constructor. Implementing move constructors out-of-line would break binary compatibility between C++98 and C++11 builds of Qt and its users, so that is not attempted here. Change-Id: I7f14437c2069cce54c498c7858f4e9060ff05e7b Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>bb10
parent
f4714459a8
commit
e3e42322c0
|
|
@ -110,6 +110,11 @@ public:
|
|||
inline bool operator!=(const QPersistentModelIndex &other) const
|
||||
{ return !operator==(other); }
|
||||
QPersistentModelIndex &operator=(const QPersistentModelIndex &other);
|
||||
#ifdef Q_COMPILER_RVALUE_REFS
|
||||
inline QPersistentModelIndex(QPersistentModelIndex &&other) : d(other.d) { other.d = 0; }
|
||||
inline QPersistentModelIndex &operator=(QPersistentModelIndex &&other)
|
||||
{ qSwap(d, other.d); return *this; }
|
||||
#endif
|
||||
inline void swap(QPersistentModelIndex &other) { qSwap(d, other.d); }
|
||||
bool operator==(const QModelIndex &other) const;
|
||||
bool operator!=(const QModelIndex &other) const;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ public:
|
|||
QBitArray(const QBitArray &other) : d(other.d) {}
|
||||
inline QBitArray &operator=(const QBitArray &other) { d = other.d; return *this; }
|
||||
#ifdef Q_COMPILER_RVALUE_REFS
|
||||
inline QBitArray(QBitArray &&other) : d(std::move(other.d)) {}
|
||||
inline QBitArray &operator=(QBitArray &&other)
|
||||
{ qSwap(d, other.d); return *this; }
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ public:
|
|||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue