https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98533
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Before that revision the error has been: pr98533.C: In instantiation of ‘struct QMetaTypeId2<ActionInstance>’: pr98533.C:9:6: required by substitution of ‘template<class T> void qRegisterMetaType(char*, T*, typename MetaTypeDefinedHelper<QMetaTypeId2<T>::IsBuiltIn>::defined) [with T = ActionInstance]’ pr98533.C:16:79: required from here pr98533.C:5:8: error: ‘Value’ is not a member of ‘IsQEnumHelper<ActionInstance>’ enum { Defined = QMetaTypeIdQObject<T>::Defined }; ^ pr98533.C:16:79: error: no matching function for call to ‘qRegisterMetaType(const char [1], ActionInstance*)’ } newId = qRegisterMetaType("", reinterpret_cast<ActionInstance *>(quintptr())) ^ pr98533.C:9:6: note: candidate: template<class T> void qRegisterMetaType(char*, T*, typename MetaTypeDefinedHelper<QMetaTypeId2<T>::IsBuiltIn>::defined) void qRegisterMetaType( ^ pr98533.C:9:6: note: substitution of deduced template arguments resulted in errors seen above pr98533.C:16:79: error: expected ‘,’ or ‘;’ at end of input } newId = qRegisterMetaType("", reinterpret_cast<ActionInstance *>(quintptr()))