diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-03-28 13:25:57 +0200 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2017-03-28 15:04:58 +0000 |
commit | b8f7e2aaa40198e48fd5a619f5fa63ed2b3fbb80 (patch) | |
tree | 08a7e8df1409e920ebd0593c943db189dee06405 | |
parent | 9bd988eb1b4327225809d4e449af7f8b3105dd87 (diff) |
Generator::minimalConstructor(): No longer generate C-style casts
bool: false
Other primitives: int(0)
Flags: Flags(0)
Enums: static_cast<Enum>(0)
Change-Id: Ic24c2d95106682508c58c78d873137f8a91bc3f8
Reviewed-by: Christian Tismer <tismer@stackless.com>
-rw-r--r-- | generator/generator.cpp | 19 |
1 files 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<const ComplexTypeEntry*>(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<const PrimitiveTypeEntry*>(type)->defaultConstructor(); |