Quantcast
Channel: QtWebEngine
Viewing all articles
Browse latest Browse all 13965

QT 5.2.0: Q_DECLARE_METATYPE requires value_type and other sequential class attributes to be defined

$
0
0
I have a code that compiles and runs fine under QT 5.1.1. After upgrading to QT 5.2.0, I got errors: c:\qt\qt5.2.0\5.2.0\msvc2012_64\include\qtcore\qmetatype.h(1372) : error C2039: 'value_type' : is not a member of 'MyTemplateClass<T>'     with     [       T=float     ]     c:\qt\qt5.2.0\5.2.0\msvc2012_64\include\qtcore\qmetatype.h(1578) : see reference to class template instantiation 'QtPrivate::SequentialContainerConverterHelper<T>' being compiled     with     [       T=MyTemplateClassFlt     ]     c:\qt\qt5.2.0\5.2.0\msvc2012_64\include\qtcore\qmetatype.h(1600) : see reference to function template instantiation 'int qRegisterNormalizedMetaType<T>(const QByteArray &,T *,QtPrivate::MetaTypeDefinedHelper<T,defined>::DefinedType)' being compiled     with     [       T=MyTemplateClassFlt,       defined=true     ]     d:\users\vlad\vsprojects\qt\cmpt\libcc\libcct\MyTemplateClass.h(736) : see reference to function template instantiation 'int qRegisterMetaType<MyTemplateClassFlt>(const char *,T *,QtPrivate::MetaTypeDefinedHelper<T,defined>::DefinedType)' being compiled     with     [       T=MyTemplateClassFlt,       defined=true     ] c:\qt\qt5.2.0\5.2.0\msvc2012_64\include\qtcore\qmetatype.h(1372) : error C2146: syntax error : missing ',' before identifier 'value_type' c:\qt\qt5.2.0\5.2.0\msvc2012_64\include\qtcore\qmetatype.h(1372) : error C2065: 'value_type' : undeclared identifier c:\qt\qt5.2.0\5.2.0\msvc2012_64\include\qtcore\qmetatype.h(1382) : error C2955: 'QMetaTypeId2' : use of class template requires template argument list     c:\qt\qt5.2.0\5.2.0\msvc2012_64\include\qtcore\qmetatype.h(1479) : see declaration of 'QMetaTypeId2' These errors are generated from the line: typedef MyTemplateClass<float> MyTemplateClassFlt; Q_DECLARE_METATYPE(MyTemplateClassFlt) MyTemplateClass is a simple template class which is not based on a sequential container. Why 5.2.0’s Q_DECLARE_METATYPE now requires “T::value_type” and other attributes of sequential classes? Is this a bug on 5.2.0 or my code is implicitly broken with undetectable under 5.1.1 problems?

Viewing all articles
Browse latest Browse all 13965

Trending Articles