diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 574026501..74cb96253 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -390,7 +390,7 @@ struct MonsterBuilder { inline flatbuffers::Offset CreateMonster( flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Sample::Vec3 *pos = 0, + const MyGame::Sample::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, flatbuffers::Offset name = 0, @@ -416,7 +416,7 @@ inline flatbuffers::Offset CreateMonster( inline flatbuffers::Offset CreateMonsterDirect( flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Sample::Vec3 *pos = 0, + const MyGame::Sample::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, const char *name = nullptr, diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 457223979..019845db4 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1683,6 +1683,8 @@ class CppGenerator : public BaseGenerator { } else { return "0"; } + } else if (IsStruct(type) && (field.value.constant == "0")) { + return "nullptr"; } else { return GenDefaultConstant(field); } diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index e2163ee64..1606b99b4 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -312,7 +312,7 @@ struct ArrayTableBuilder { inline flatbuffers::Offset CreateArrayTable( flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Example::ArrayStruct *a = 0) { + const MyGame::Example::ArrayStruct *a = nullptr) { ArrayTableBuilder builder_(_fbb); builder_.add_a(a); return builder_.Finish(); diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 36a46cf54..06477eab3 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -1947,7 +1947,7 @@ struct MonsterBuilder { inline flatbuffers::Offset CreateMonster( flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Example::Vec3 *pos = 0, + const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, flatbuffers::Offset name = 0, @@ -2115,7 +2115,7 @@ struct Monster::Traits { inline flatbuffers::Offset CreateMonsterDirect( flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Example::Vec3 *pos = 0, + const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, const char *name = nullptr, diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 4fd5f50df..bcde2c6b1 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -394,7 +394,7 @@ inline flatbuffers::Offset CreateRoot( flatbuffers::Offset c = 0, Evolution::V1::Enum d = Evolution::V1::Enum::King, flatbuffers::Offset e = 0, - const Evolution::V1::Struct *f = 0, + const Evolution::V1::Struct *f = nullptr, flatbuffers::Offset> g = 0, flatbuffers::Offset>> h = 0, int32_t i = 1234, @@ -424,7 +424,7 @@ inline flatbuffers::Offset CreateRootDirect( flatbuffers::Offset c = 0, Evolution::V1::Enum d = Evolution::V1::Enum::King, flatbuffers::Offset e = 0, - const Evolution::V1::Struct *f = 0, + const Evolution::V1::Struct *f = nullptr, const std::vector *g = nullptr, const std::vector> *h = nullptr, int32_t i = 1234, diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 940b35e98..c56c780b8 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -480,7 +480,7 @@ inline flatbuffers::Offset CreateRoot( flatbuffers::Offset c = 0, Evolution::V2::Enum d = Evolution::V2::Enum::King, flatbuffers::Offset e = 0, - const Evolution::V2::Struct *ff = 0, + const Evolution::V2::Struct *ff = nullptr, flatbuffers::Offset> g = 0, flatbuffers::Offset>> h = 0, uint32_t i = 1234, @@ -508,7 +508,7 @@ inline flatbuffers::Offset CreateRootDirect( flatbuffers::Offset c = 0, Evolution::V2::Enum d = Evolution::V2::Enum::King, flatbuffers::Offset e = 0, - const Evolution::V2::Struct *ff = 0, + const Evolution::V2::Struct *ff = nullptr, const std::vector *g = nullptr, const std::vector> *h = nullptr, uint32_t i = 1234, diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index ce4ec2412..1a887aabc 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -1887,7 +1887,7 @@ struct MonsterBuilder { inline flatbuffers::Offset CreateMonster( flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Example::Vec3 *pos = 0, + const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, flatbuffers::Offset name = 0, @@ -1993,7 +1993,7 @@ inline flatbuffers::Offset CreateMonster( inline flatbuffers::Offset CreateMonsterDirect( flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Example::Vec3 *pos = 0, + const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, const char *name = nullptr, diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index d6a2f4972..b53bc1517 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -171,7 +171,7 @@ inline flatbuffers::Offset CreateTableInFirstNS( NamespaceA::NamespaceB::EnumInNestedNS foo_enum = NamespaceA::NamespaceB::EnumInNestedNS_A, NamespaceA::NamespaceB::UnionInNestedNS foo_union_type = NamespaceA::NamespaceB::UnionInNestedNS_NONE, flatbuffers::Offset foo_union = 0, - const NamespaceA::NamespaceB::StructInNestedNS *foo_struct = 0) { + const NamespaceA::NamespaceB::StructInNestedNS *foo_struct = nullptr) { TableInFirstNSBuilder builder_(_fbb); builder_.add_foo_struct(foo_struct); builder_.add_foo_union(foo_union);