diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2018-06-23 08:56:40 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2018-06-25 18:49:07 +0000 |
commit | f05d1b0856be2e43dacb5da660b4714a64a3a0ae (patch) | |
tree | a8080e14fc3cbc158e3f31c38ba0b8a8be6e2646 /src/corelib/kernel/qmetatype.cpp | |
parent | 36818779b9b43efbf887b842706713a18bca8235 (diff) |
QMetaType: remove compatibility code for MSVC 2013
We use the constexpr code for MSVC 2015.
Change-Id: I91f63171877743978cb3fffd153ad52a3ee293d0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/corelib/kernel/qmetatype.cpp')
-rw-r--r-- | src/corelib/kernel/qmetatype.cpp | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 0e57cb8cba..13c92d35f4 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -835,15 +835,14 @@ void QMetaType::registerStreamOperators(int idx, SaveOperator saveOp, } #endif // QT_NO_DATASTREAM -#if defined(Q_COMPILER_CONSTEXPR) || (defined(Q_CC_MSVC) && Q_CC_MSVC >= 1900) // We don't officially support constexpr in MSVC 2015, but the limited support it // has is enough for the code below. -# define STRINGIFY_TYPE_NAME(MetaTypeName, TypeId, RealName) \ +#define STRINGIFY_TYPE_NAME(MetaTypeName, TypeId, RealName) \ #RealName "\0" -# define CALCULATE_TYPE_LEN(MetaTypeName, TypeId, RealName) \ +#define CALCULATE_TYPE_LEN(MetaTypeName, TypeId, RealName) \ short(sizeof(#RealName)), -# define MAP_TYPE_ID_TO_IDX(MetaTypeName, TypeId, RealName) \ +#define MAP_TYPE_ID_TO_IDX(MetaTypeName, TypeId, RealName) \ TypeId, namespace { @@ -911,10 +910,9 @@ template <int... TypeIds> struct MetaTypeOffsets<QtPrivate::IndexesList<TypeIds. } // anonymous namespace constexpr MetaTypeOffsets<QtPrivate::Indexes<QMetaType::HighestInternalId + 1>::Value> metaTypeNames {}; -# undef STRINGIFY_TYPE_NAME -# undef CALCULATE_TYPE_LEN -# undef MAP_TYPE_ID_TO_IDX -#endif +#undef STRINGIFY_TYPE_NAME +#undef CALCULATE_TYPE_LEN +#undef MAP_TYPE_ID_TO_IDX /*! Returns the type name associated with the given \a typeId, or a null @@ -926,20 +924,8 @@ constexpr MetaTypeOffsets<QtPrivate::Indexes<QMetaType::HighestInternalId + 1>:: const char *QMetaType::typeName(int typeId) { const uint type = typeId; -#define QT_METATYPE_TYPEID_TYPENAME_CONVERTER(MetaTypeName, TypeId, RealName) \ - case QMetaType::MetaTypeName: return #RealName; break; - if (Q_LIKELY(type <= QMetaType::HighestInternalId)) { -#if defined(Q_COMPILER_CONSTEXPR) || (defined(Q_CC_MSVC) && Q_CC_MSVC >= 1900) return metaTypeNames[typeId]; -#else - switch (QMetaType::Type(type)) { - QT_FOR_EACH_STATIC_TYPE(QT_METATYPE_TYPEID_TYPENAME_CONVERTER) - case QMetaType::UnknownType: - case QMetaType::User: - break; - } -#endif } else if (Q_UNLIKELY(type < QMetaType::User)) { return nullptr; // It can happen when someone cast int to QVariant::Type, we should not crash... } |