[Development] [Interest] qRegisterMetaType<QList<QSslError> > and type flags

Jedrzej Nowacki jedrzej.nowacki at digia.com
Thu Jan 3 08:48:58 CET 2013


On Wednesday 2. January 2013 17.15.11 Thiago Macieira wrote:
> On quarta-feira, 2 de janeiro de 2013 16.43.27, Jan Kundrát wrote:
> > QMetaType::registerType: Binary compatibility break -- Type flags for
> > type 'QList<QSslError>' [1062] don't match. Previously registered
> > TypeFlags(0x7), now registering TypeFlags(0x107).
> 
> The difference is 0x100, which is
>         WasDeclaredAsMetaType = 0x100
> 
> Which is turned on if this hidden parameter of qRegisterNormalizedMetaType
> is true:
> 
> typename QtPrivate::MetaTypeDefinedHelper<T, QMetaTypeId2<T>::Defined &&
> !QMetaTypeId2<T>::IsBuiltIn>::DefinedType defined =
> QtPrivate::MetaTypeDefinedHelper<T, QMetaTypeId2<T>::Defined &&
> !QMetaTypeId2<T>::IsBuiltIn>::Defined
> 
> I have no clue whether the fault is in the template magic expression or
> whether the type was originally registered without being declared as a
> metatype.
> 
> And even if it is the latter case, is it a problem?

It is an ODR violation detection:

https://codereview.qt-project.org/#change,43812

Cheers,
  Jędrek



More information about the Development mailing list