diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-10-25 14:12:31 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-11-03 16:28:14 +0100 |
commit | 7d75a4850716423c31fd10ddd85fe82e974b695d (patch) | |
tree | 96756fd7ddde0ec06a1c696b85013bafc6729cbd | |
parent | 742de50c5ec01f93cf0e193a8a131cbd913cb787 (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.h | 23 | ||||
-rw-r--r-- | src/corelib/tools/qcontainerfwd.h | 4 |
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> |