diff options
author | Arno Rehn <a.rehn@menlosystems.com> | 2021-07-09 16:15:48 +0200 |
---|---|---|
committer | Arno Rehn <a.rehn@menlosystems.com> | 2021-07-12 18:33:19 +0200 |
commit | 70051c55fe80296dd135049fe4d2c49f51b38010 (patch) | |
tree | 9f50826fccba07b40fbb4cb5313cac4e2169d84d /src/corelib/kernel/qmetatype.h | |
parent | 1f2d756d92b9263fd823278cf417528cdc73685c (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.h | 23 |
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) |