diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h index 7f1cb82f3a7..89e2bb0afda 100644 --- a/src/corelib/io/qdebug.h +++ b/src/corelib/io/qdebug.h @@ -275,7 +275,10 @@ operator<<(QDebug dbg, T value) } template -inline typename QtPrivate::QEnableIf::Value, QDebug>::Type operator<<(QDebug debug, const QFlags &flags) +inline typename QtPrivate::QEnableIf< + QtPrivate::IsQEnumHelper::Value || QtPrivate::IsQEnumHelper >::Value, + QDebug>::Type +operator<<(QDebug debug, const QFlags &flags) { const QMetaObject *obj = qt_getEnumMetaObject(T()); const char *name = qt_getEnumName(T()); @@ -283,7 +286,10 @@ inline typename QtPrivate::QEnableIf::Value, QDebug> } template -inline typename QtPrivate::QEnableIf::Value, QDebug>::Type operator<<(QDebug debug, const QFlags &flags) +inline typename QtPrivate::QEnableIf< + !QtPrivate::IsQEnumHelper::Value && !QtPrivate::IsQEnumHelper >::Value, + QDebug>::Type +operator<<(QDebug debug, const QFlags &flags) #else // !QT_NO_QOBJECT template inline QDebug operator<<(QDebug debug, const QFlags &flags)