From 5b4acf809ecadf408a966555e91c37f32b119d10 Mon Sep 17 00:00:00 2001 From: Aaron Date: Fri, 6 Oct 2017 08:50:24 -0700 Subject: [PATCH] [C++] Add explicit keyword on generated constructors for Builder structs (#4452) * Add explicit keyword on C++ generated constructors for Builder structs * Add missing generated code for review --- samples/monster_generated.h | 4 ++-- src/idl_gen_cpp.cpp | 2 +- tests/monster_test_generated.h | 12 +++++------ .../namespace_test1_generated.h | 2 +- .../namespace_test2_generated.h | 6 +++--- .../namespace_test2_generated.ts | 20 +++++++++---------- tests/union_vector/union_vector_generated.h | 4 ++-- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 4d49171b9..bdf2f5a23 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -314,7 +314,7 @@ struct MonsterBuilder { void add_equipped(flatbuffers::Offset equipped) { fbb_.AddOffset(Monster::VT_EQUIPPED, equipped); } - MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -424,7 +424,7 @@ struct WeaponBuilder { void add_damage(int16_t damage) { fbb_.AddElement(Weapon::VT_DAMAGE, damage, 0); } - WeaponBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit WeaponBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index bf185646e..ee0c2b582 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1693,7 +1693,7 @@ class CppGenerator : public BaseGenerator { } // Builder constructor - code_ += " {{STRUCT_NAME}}Builder(flatbuffers::FlatBufferBuilder &_fbb)"; + code_ += " explicit {{STRUCT_NAME}}Builder(flatbuffers::FlatBufferBuilder &_fbb)"; code_ += " : fbb_(_fbb) {"; code_ += " start_ = fbb_.StartTable();"; code_ += " }"; diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 1478ea67d..c9b1572dd 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -353,7 +353,7 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct InParentNamespaceBuilder { flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; - InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -395,7 +395,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct MonsterBuilder { flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; - MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -454,7 +454,7 @@ struct TestSimpleTableWithEnumBuilder { void add_color(Color color) { fbb_.AddElement(TestSimpleTableWithEnum::VT_COLOR, static_cast(color), 2); } - TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -537,7 +537,7 @@ struct StatBuilder { void add_count(uint16_t count) { fbb_.AddElement(Stat::VT_COUNT, count, 0); } - StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -1078,7 +1078,7 @@ struct MonsterBuilder { void add_parent_namespace_test(flatbuffers::Offset parent_namespace_test) { fbb_.AddOffset(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test); } - MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -1419,7 +1419,7 @@ struct TypeAliasesBuilder { void add_vf64(flatbuffers::Offset> vf64) { fbb_.AddOffset(TypeAliases::VT_VF64, vf64); } - TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index a3d7bac37..c3ac6d4c5 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -99,7 +99,7 @@ struct TableInNestedNSBuilder { void add_foo(int32_t foo) { fbb_.AddElement(TableInNestedNS::VT_FOO, foo, 0); } - TableInNestedNSBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableInNestedNSBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index e3603a4df..a88181469 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -70,7 +70,7 @@ struct TableInFirstNSBuilder { void add_foo_struct(const NamespaceA::NamespaceB::StructInNestedNS *foo_struct) { fbb_.AddStruct(TableInFirstNS::VT_FOO_STRUCT, foo_struct); } - TableInFirstNSBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableInFirstNSBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -134,7 +134,7 @@ struct TableInCBuilder { void add_refer_to_a2(flatbuffers::Offset refer_to_a2) { fbb_.AddOffset(TableInC::VT_REFER_TO_A2, refer_to_a2); } - TableInCBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableInCBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -184,7 +184,7 @@ struct SecondTableInABuilder { void add_refer_to_c(flatbuffers::Offset refer_to_c) { fbb_.AddOffset(SecondTableInA::VT_REFER_TO_C, refer_to_c); } - SecondTableInABuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit SecondTableInABuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } diff --git a/tests/namespace_test/namespace_test2_generated.ts b/tests/namespace_test/namespace_test2_generated.ts index daaaab3cf..8deae09c4 100644 --- a/tests/namespace_test/namespace_test2_generated.ts +++ b/tests/namespace_test/namespace_test2_generated.ts @@ -1,6 +1,6 @@ // automatically generated by the FlatBuffers compiler, do not modify -import * as NS4989953370203581498 from "./namespace_test1_generated"; +import * as NS9459827973991502386 from "./namespace_test1_generated"; /** * @constructor */ @@ -39,24 +39,24 @@ static getRootAsTableInFirstNS(bb:flatbuffers.ByteBuffer, obj?:TableInFirstNS):T * @param {NamespaceA.NamespaceB.TableInNestedNS=} obj * @returns {NamespaceA.NamespaceB.TableInNestedNS|null} */ -fooTable(obj?:NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS):NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS|null { +fooTable(obj?:NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS):NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS|null { var offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + return offset ? (obj || new NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; }; /** * @returns {NamespaceA.NamespaceB.EnumInNestedNS} */ -fooEnum():NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS { +fooEnum():NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS { var offset = this.bb.__offset(this.bb_pos, 6); - return offset ? /** @type {NamespaceA.NamespaceB.EnumInNestedNS} */ (this.bb.readInt8(this.bb_pos + offset)) : NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS.A; + return offset ? /** @type {NamespaceA.NamespaceB.EnumInNestedNS} */ (this.bb.readInt8(this.bb_pos + offset)) : NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS.A; }; /** * @param {NamespaceA.NamespaceB.EnumInNestedNS} value * @returns {boolean} */ -mutate_foo_enum(value:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS):boolean { +mutate_foo_enum(value:NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS):boolean { var offset = this.bb.__offset(this.bb_pos, 6); if (offset === 0) { @@ -71,9 +71,9 @@ mutate_foo_enum(value:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS * @param {NamespaceA.NamespaceB.StructInNestedNS=} obj * @returns {NamespaceA.NamespaceB.StructInNestedNS|null} */ -fooStruct(obj?:NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS):NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS|null { +fooStruct(obj?:NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS):NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS|null { var offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS).__init(this.bb_pos + offset, this.bb) : null; + return offset ? (obj || new NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS).__init(this.bb_pos + offset, this.bb) : null; }; /** @@ -95,8 +95,8 @@ static addFooTable(builder:flatbuffers.Builder, fooTableOffset:flatbuffers.Offse * @param {flatbuffers.Builder} builder * @param {NamespaceA.NamespaceB.EnumInNestedNS} fooEnum */ -static addFooEnum(builder:flatbuffers.Builder, fooEnum:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS) { - builder.addFieldInt8(1, fooEnum, NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS.A); +static addFooEnum(builder:flatbuffers.Builder, fooEnum:NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS) { + builder.addFieldInt8(1, fooEnum, NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS.A); }; /** diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 3ebf411ce..d2dd23fc6 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -214,7 +214,7 @@ struct AttackerBuilder { void add_sword_attack_damage(int32_t sword_attack_damage) { fbb_.AddElement(Attacker::VT_SWORD_ATTACK_DAMAGE, sword_attack_damage, 0); } - AttackerBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit AttackerBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } @@ -327,7 +327,7 @@ struct MovieBuilder { void add_characters(flatbuffers::Offset>> characters) { fbb_.AddOffset(Movie::VT_CHARACTERS, characters); } - MovieBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MovieBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }