Mark QHash/QMap as relocatable and movable-come-Qt 6
They were forgotten from the movable containers for Qt 5.0. Make sure we don't forget for 6.0, either. Until then, mark with new Q_RELOCATABLE_TYPE. Change-Id: I279a96c02a718a1432040303bb0d001739f59a17 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
488cf78e44
commit
3e63a58a96
@ -194,6 +194,32 @@ Q_DECLARE_MOVABLE_CONTAINER(QSet);
|
|||||||
|
|
||||||
#undef Q_DECLARE_MOVABLE_CONTAINER
|
#undef Q_DECLARE_MOVABLE_CONTAINER
|
||||||
|
|
||||||
|
/* These cannot be movable before ### Qt 6, for BC reasons */
|
||||||
|
#define Q_DECLARE_MOVABLE_CONTAINER(CONTAINER) \
|
||||||
|
template <typename K, typename V> class CONTAINER; \
|
||||||
|
template <typename K, typename V> \
|
||||||
|
class QTypeInfo< CONTAINER<K, V> > \
|
||||||
|
{ \
|
||||||
|
public: \
|
||||||
|
enum { \
|
||||||
|
isPointer = false, \
|
||||||
|
isIntegral = false, \
|
||||||
|
isComplex = true, \
|
||||||
|
isStatic = (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)), \
|
||||||
|
isRelocatable = true, \
|
||||||
|
isLarge = (sizeof(CONTAINER<K, V>) > sizeof(void*)), \
|
||||||
|
isDummy = false, \
|
||||||
|
sizeOf = sizeof(CONTAINER<K, V>) \
|
||||||
|
}; \
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_DECLARE_MOVABLE_CONTAINER(QMap);
|
||||||
|
Q_DECLARE_MOVABLE_CONTAINER(QMultiMap);
|
||||||
|
Q_DECLARE_MOVABLE_CONTAINER(QHash);
|
||||||
|
Q_DECLARE_MOVABLE_CONTAINER(QMultiHash);
|
||||||
|
|
||||||
|
#undef Q_DECLARE_MOVABLE_CONTAINER
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Specialize a specific type with:
|
Specialize a specific type with:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user