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
|
||||
|
||||
/* 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:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user