diff options
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qmetatype.cpp | 11 | ||||
-rw-r--r-- | src/corelib/kernel/qmetatype.h | 8 |
2 files changed, 8 insertions, 11 deletions
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 3758d3c941..ba301ca522 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -2974,24 +2974,17 @@ static const QtPrivate::QMetaTypeInterface *interfaceForType(int typeId) QMetaType::QMetaType(int typeId) : QMetaType(interfaceForType(typeId)) {} namespace QtPrivate { -#ifndef QT_BOOTSTRAPPED - -#if defined(Q_CC_MSVC) && defined(QT_BUILD_CORE_LIB) -#define QT_METATYPE_TEMPLATE_EXPORT Q_CORE_EXPORT -#else -#define QT_METATYPE_TEMPLATE_EXPORT -#endif +#if !defined(QT_BOOTSTRAPPED) && !defined(Q_CC_MSVC) // Explicit instantiation definition #define QT_METATYPE_DECLARE_TEMPLATE_ITER(TypeName, Id, Name) \ - template class QT_METATYPE_TEMPLATE_EXPORT QMetaTypeForType<Name>; + template class QMetaTypeForType<Name>; QT_FOR_EACH_STATIC_PRIMITIVE_TYPE(QT_METATYPE_DECLARE_TEMPLATE_ITER) QT_FOR_EACH_STATIC_PRIMITIVE_POINTER(QT_METATYPE_DECLARE_TEMPLATE_ITER) QT_FOR_EACH_STATIC_CORE_CLASS(QT_METATYPE_DECLARE_TEMPLATE_ITER) QT_FOR_EACH_STATIC_CORE_POINTER(QT_METATYPE_DECLARE_TEMPLATE_ITER) QT_FOR_EACH_STATIC_CORE_TEMPLATE(QT_METATYPE_DECLARE_TEMPLATE_ITER) #undef QT_METATYPE_DECLARE_TEMPLATE_ITER -#undef QT_METATYPE_TEMPLATE_EXPORT #endif } diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 346ae3667a..669273af68 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -2369,9 +2369,13 @@ public: }; #undef QT_METATYPE_CONSTEXPRLAMDA -#ifndef QT_BOOTSTRAPPED +/* + MSVC instantiates extern templates +(https://developercommunity.visualstudio.com/t/c11-extern-templates-doesnt-work-for-class-templat/157868) + */ +#if !defined(QT_BOOTSTRAPPED) && !defined(Q_CC_MSVC) -#if !defined(Q_CC_MSVC) || !defined(QT_BUILD_CORE_LIB) +#if !defined(QT_BUILD_CORE_LIB) #define QT_METATYPE_TEMPLATE_EXPORT Q_CORE_EXPORT #else #define QT_METATYPE_TEMPLATE_EXPORT |