summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-10-25 14:12:31 +0100
committerLars Knoll <lars.knoll@qt.io>2020-11-03 16:28:14 +0100
commit7d75a4850716423c31fd10ddd85fe82e974b695d (patch)
tree96756fd7ddde0ec06a1c696b85013bafc6729cbd
parent742de50c5ec01f93cf0e193a8a131cbd913cb787 (diff)
Cleanup container declarations in qtypeinfo.h
Use variadic templates to avoid having to use several macros to declare movable containers. Add missing movable declaration for QCache. Change-Id: I32d6a399ef8e6c39021df04deedfbbf0c526fc84 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/corelib/global/qtypeinfo.h23
-rw-r--r--src/corelib/tools/qcontainerfwd.h4
2 files changed, 5 insertions, 22 deletions
diff --git a/src/corelib/global/qtypeinfo.h b/src/corelib/global/qtypeinfo.h
index 04b918f421..f3382ea17e 100644
--- a/src/corelib/global/qtypeinfo.h
+++ b/src/corelib/global/qtypeinfo.h
@@ -117,9 +117,8 @@ public:
};
#define Q_DECLARE_MOVABLE_CONTAINER(CONTAINER) \
-template <typename T> class CONTAINER; \
-template <typename T> \
-class QTypeInfo< CONTAINER<T> > \
+template <typename ...T> \
+class QTypeInfo<CONTAINER<T...>> \
{ \
public: \
enum { \
@@ -134,27 +133,11 @@ Q_DECLARE_MOVABLE_CONTAINER(QList);
Q_DECLARE_MOVABLE_CONTAINER(QQueue);
Q_DECLARE_MOVABLE_CONTAINER(QStack);
Q_DECLARE_MOVABLE_CONTAINER(QSet);
-
-#undef Q_DECLARE_MOVABLE_CONTAINER
-
-#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, \
- isRelocatable = true, \
- }; \
-}
-
Q_DECLARE_MOVABLE_CONTAINER(QMap);
Q_DECLARE_MOVABLE_CONTAINER(QMultiMap);
Q_DECLARE_MOVABLE_CONTAINER(QHash);
Q_DECLARE_MOVABLE_CONTAINER(QMultiHash);
+Q_DECLARE_MOVABLE_CONTAINER(QCache);
#undef Q_DECLARE_MOVABLE_CONTAINER
diff --git a/src/corelib/tools/qcontainerfwd.h b/src/corelib/tools/qcontainerfwd.h
index a104b11965..b9a50e4d60 100644
--- a/src/corelib/tools/qcontainerfwd.h
+++ b/src/corelib/tools/qcontainerfwd.h
@@ -37,11 +37,11 @@
**
****************************************************************************/
+#include <QtCore/qglobal.h>
+
#ifndef QCONTAINERFWD_H
#define QCONTAINERFWD_H
-#include <QtCore/qglobal.h>
-
// std headers can unfortunately not be forward declared
#include <tuple>
#include <variant>