summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetatype.h
diff options
context:
space:
mode:
authorArno Rehn <a.rehn@menlosystems.com>2021-07-09 16:15:48 +0200
committerArno Rehn <a.rehn@menlosystems.com>2021-07-12 18:33:19 +0200
commit70051c55fe80296dd135049fe4d2c49f51b38010 (patch)
tree9f50826fccba07b40fbb4cb5313cac4e2169d84d /src/corelib/kernel/qmetatype.h
parent1f2d756d92b9263fd823278cf417528cdc73685c (diff)
Move IsSequentialContainer tagging to the appropriate macro
Originally, the template specialization QtPrivate::IsSequentialContainer was done in Q_DECLARE_METATYPE_TEMPLATE_1ARG. This was conceptually wrong and prevented re-using Q_DECLARE_METATYPE_TEMPLATE_1ARG. This patch moves the specialization to Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE, which makes it symmetrical to Q_DECLARE_ASSOCIATIVE_CONTAINER_METATYPE and allows re-using Q_DECLARE_METATYPE_TEMPLATE_1ARG with non-container templated types. Change-Id: I3b952ed36e4c140bce3511aebc1e5599c4822e34 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/corelib/kernel/qmetatype.h')
-rw-r--r--src/corelib/kernel/qmetatype.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 89812f99c3..019a85c12a 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -1425,13 +1425,6 @@ struct QMetaTypeId< SINGLE_ARG_TEMPLATE<T> > \
return newId; \
} \
}; \
-namespace QtPrivate { \
-template<typename T> \
-struct IsSequentialContainer<SINGLE_ARG_TEMPLATE<T> > \
-{ \
- enum { Value = true }; \
-}; \
-} \
QT_END_NAMESPACE
#define Q_DECLARE_METATYPE_TEMPLATE_2ARG(DOUBLE_ARG_TEMPLATE) \
@@ -1528,8 +1521,20 @@ struct QMetaTypeId< SMART_POINTER<T> > \
};\
QT_END_NAMESPACE
+#define Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(SINGLE_ARG_TEMPLATE) \
+ QT_BEGIN_NAMESPACE \
+ namespace QtPrivate { \
+ template<typename T> \
+ struct IsSequentialContainer<SINGLE_ARG_TEMPLATE<T> > \
+ { \
+ enum { Value = true }; \
+ }; \
+ } \
+ QT_END_NAMESPACE \
+ Q_DECLARE_METATYPE_TEMPLATE_1ARG(SINGLE_ARG_TEMPLATE)
+
#define Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE_ITER(TEMPLATENAME) \
- Q_DECLARE_METATYPE_TEMPLATE_1ARG(TEMPLATENAME)
+ Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(TEMPLATENAME)
QT_END_NAMESPACE
@@ -1537,8 +1542,6 @@ QT_FOR_EACH_AUTOMATIC_TEMPLATE_1ARG(Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE_ITER
#undef Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE_ITER
-#define Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE Q_DECLARE_METATYPE_TEMPLATE_1ARG
-
Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(std::vector)
Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(std::list)