diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-10-07 15:19:26 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-10-08 08:21:48 +0200 |
commit | 8ccae33a8114ea7da49701b5d7c9f6733a219711 (patch) | |
tree | 16dcc87b584660980153da9a4fbd35640203876c /src/corelib/kernel | |
parent | 564b59d903683b14c75b72a3e93367717f201def (diff) |
Fix compilation on MSVC with /std:c++latest
Inline the definition of QMetaTypeForType::name and make it constexpr.
The old code was conflicting in it's definition (only const in the
declaration, constexpr in the definition), something MSVC didn't like.
Fixes: QTBUG-87225
Change-Id: I7182c421c9f7612e4ff3d538829b2daee0fe4c5c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qmetatype.h | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 971388fabd..a6631dc2d9 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -2111,7 +2111,7 @@ struct QDataStreamOperatorForType <T, false> template<typename S> class QMetaTypeForType { - static const decltype(typenameHelper<S>()) name; + static constexpr decltype(typenameHelper<S>()) name = typenameHelper<S>(); template<typename T> static constexpr QMetaTypeInterface::DefaultCtrFn getDefaultCtr() @@ -2200,14 +2200,9 @@ QMetaTypeInterface QMetaTypeForType<T>::metaType = { /*.legacyRegisterOp=*/ getLegacyRegister<T>() }; -template<typename T> -constexpr const decltype(typenameHelper<T>()) QMetaTypeForType<T>::name = typenameHelper<T>(); - template<> class QMetaTypeForType<void> { - static const decltype(typenameHelper<void>()) name; - public: static inline QMetaTypeInterface metaType = { |