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>bb10
parent
1f2d756d92
commit
70051c55fe
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue