From b8f7e2aaa40198e48fd5a619f5fa63ed2b3fbb80 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 28 Mar 2017 13:25:57 +0200 Subject: Generator::minimalConstructor(): No longer generate C-style casts bool: false Other primitives: int(0) Flags: Flags(0) Enums: static_cast(0) Change-Id: Ic24c2d95106682508c58c78d873137f8a91bc3f8 Reviewed-by: Christian Tismer --- generator/generator.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/generator/generator.cpp b/generator/generator.cpp index e4d27c067..d7f98a90f 100644 --- a/generator/generator.cpp +++ b/generator/generator.cpp @@ -578,10 +578,9 @@ QString Generator::minimalConstructor(const AbstractMetaType* type) const } if (type->isNativePointer()) - return QString::fromLatin1("((%1*)0)").arg(type->typeEntry()->qualifiedCppName()); - + return QLatin1String("static_cast<") + type->typeEntry()->qualifiedCppName() + QLatin1String(" *>(0)"); if (Generator::isPointer(type)) - return QString::fromLatin1("((::%1*)0)").arg(type->typeEntry()->qualifiedCppName()); + return QLatin1String("static_cast< ::") + type->typeEntry()->qualifiedCppName() + QLatin1String(" *>(0)"); if (type->typeEntry()->isComplex()) { const ComplexTypeEntry* cType = reinterpret_cast(type->typeEntry()); @@ -602,11 +601,17 @@ QString Generator::minimalConstructor(const TypeEntry* type) const if (!type) return QString(); - if (type->isCppPrimitive()) - return QString::fromLatin1("((%1)0)").arg(type->qualifiedCppName()); + if (type->isCppPrimitive()) { + const QString &name = type->qualifiedCppName(); + return name == QLatin1String("bool") + ? QLatin1String("false") : name + QLatin1String("(0)"); + } + + if (type->isEnum()) + return QLatin1String("static_cast< ::") + type->qualifiedCppName() + QLatin1String(">(0)"); - if (type->isEnum() || type->isFlags()) - return QString::fromLatin1("((::%1)0)").arg(type->qualifiedCppName()); + if (type->isFlags()) + return type->qualifiedCppName() + QLatin1String("(0)"); if (type->isPrimitive()) { QString ctor = reinterpret_cast(type)->defaultConstructor(); -- cgit v1.2.3