summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qmetatype.cpp11
-rw-r--r--src/corelib/kernel/qmetatype.h8
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