Sitelet https://github.com/shiwork/flatbuffers/commit/5b4acf809ecadf408a966555e91c37f32b119d10
Skip to content

Commit 5b4acf8

Browse files
Aaronaardappel
authored andcommitted
[C++] Add explicit keyword on generated constructors for Builder structs (google#4452)
* Add explicit keyword on C++ generated constructors for Builder structs * Add missing generated code for review
1 parent 86fb05d commit 5b4acf8

7 files changed

Lines changed: 25 additions & 25 deletions

File tree

‎samples/monster_generated.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ struct MonsterBuilder {
314314
void add_equipped(flatbuffers::Offset<void> equipped) {
315315
fbb_.AddOffset(Monster::VT_EQUIPPED, equipped);
316316
}
317-
MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
317+
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
318318
: fbb_(_fbb) {
319319
start_ = fbb_.StartTable();
320320
}
@@ -424,7 +424,7 @@ struct WeaponBuilder {
424424
void add_damage(int16_t damage) {
425425
fbb_.AddElement<int16_t>(Weapon::VT_DAMAGE, damage, 0);
426426
}
427-
WeaponBuilder(flatbuffers::FlatBufferBuilder &_fbb)
427+
explicit WeaponBuilder(flatbuffers::FlatBufferBuilder &_fbb)
428428
: fbb_(_fbb) {
429429
start_ = fbb_.StartTable();
430430
}

‎src/idl_gen_cpp.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1693,7 +1693,7 @@ class CppGenerator : public BaseGenerator {
16931693
}
16941694

16951695
// Builder constructor
1696-
code_ += " {{STRUCT_NAME}}Builder(flatbuffers::FlatBufferBuilder &_fbb)";
1696+
code_ += " explicit {{STRUCT_NAME}}Builder(flatbuffers::FlatBufferBuilder &_fbb)";
16971697
code_ += " : fbb_(_fbb) {";
16981698
code_ += " start_ = fbb_.StartTable();";
16991699
code_ += " }";

‎tests/monster_test_generated.h‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
353353
struct InParentNamespaceBuilder {
354354
flatbuffers::FlatBufferBuilder &fbb_;
355355
flatbuffers::uoffset_t start_;
356-
InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb)
356+
explicit InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb)
357357
: fbb_(_fbb) {
358358
start_ = fbb_.StartTable();
359359
}
@@ -395,7 +395,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
395395
struct MonsterBuilder {
396396
flatbuffers::FlatBufferBuilder &fbb_;
397397
flatbuffers::uoffset_t start_;
398-
MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
398+
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
399399
: fbb_(_fbb) {
400400
start_ = fbb_.StartTable();
401401
}
@@ -454,7 +454,7 @@ struct TestSimpleTableWithEnumBuilder {
454454
void add_color(Color color) {
455455
fbb_.AddElement<int8_t>(TestSimpleTableWithEnum::VT_COLOR, static_cast<int8_t>(color), 2);
456456
}
457-
TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb)
457+
explicit TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb)
458458
: fbb_(_fbb) {
459459
start_ = fbb_.StartTable();
460460
}
@@ -537,7 +537,7 @@ struct StatBuilder {
537537
void add_count(uint16_t count) {
538538
fbb_.AddElement<uint16_t>(Stat::VT_COUNT, count, 0);
539539
}
540-
StatBuilder(flatbuffers::FlatBufferBuilder &_fbb)
540+
explicit StatBuilder(flatbuffers::FlatBufferBuilder &_fbb)
541541
: fbb_(_fbb) {
542542
start_ = fbb_.StartTable();
543543
}
@@ -1078,7 +1078,7 @@ struct MonsterBuilder {
10781078
void add_parent_namespace_test(flatbuffers::Offset<MyGame::InParentNamespace> parent_namespace_test) {
10791079
fbb_.AddOffset(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test);
10801080
}
1081-
MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1081+
explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb)
10821082
: fbb_(_fbb) {
10831083
start_ = fbb_.StartTable();
10841084
}
@@ -1419,7 +1419,7 @@ struct TypeAliasesBuilder {
14191419
void add_vf64(flatbuffers::Offset<flatbuffers::Vector<double>> vf64) {
14201420
fbb_.AddOffset(TypeAliases::VT_VF64, vf64);
14211421
}
1422-
TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1422+
explicit TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb)
14231423
: fbb_(_fbb) {
14241424
start_ = fbb_.StartTable();
14251425
}

‎tests/namespace_test/namespace_test1_generated.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ struct TableInNestedNSBuilder {
9999
void add_foo(int32_t foo) {
100100
fbb_.AddElement<int32_t>(TableInNestedNS::VT_FOO, foo, 0);
101101
}
102-
TableInNestedNSBuilder(flatbuffers::FlatBufferBuilder &_fbb)
102+
explicit TableInNestedNSBuilder(flatbuffers::FlatBufferBuilder &_fbb)
103103
: fbb_(_fbb) {
104104
start_ = fbb_.StartTable();
105105
}

‎tests/namespace_test/namespace_test2_generated.h‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ struct TableInFirstNSBuilder {
7070
void add_foo_struct(const NamespaceA::NamespaceB::StructInNestedNS *foo_struct) {
7171
fbb_.AddStruct(TableInFirstNS::VT_FOO_STRUCT, foo_struct);
7272
}
73-
TableInFirstNSBuilder(flatbuffers::FlatBufferBuilder &_fbb)
73+
explicit TableInFirstNSBuilder(flatbuffers::FlatBufferBuilder &_fbb)
7474
: fbb_(_fbb) {
7575
start_ = fbb_.StartTable();
7676
}
@@ -134,7 +134,7 @@ struct TableInCBuilder {
134134
void add_refer_to_a2(flatbuffers::Offset<NamespaceA::SecondTableInA> refer_to_a2) {
135135
fbb_.AddOffset(TableInC::VT_REFER_TO_A2, refer_to_a2);
136136
}
137-
TableInCBuilder(flatbuffers::FlatBufferBuilder &_fbb)
137+
explicit TableInCBuilder(flatbuffers::FlatBufferBuilder &_fbb)
138138
: fbb_(_fbb) {
139139
start_ = fbb_.StartTable();
140140
}
@@ -184,7 +184,7 @@ struct SecondTableInABuilder {
184184
void add_refer_to_c(flatbuffers::Offset<NamespaceC::TableInC> refer_to_c) {
185185
fbb_.AddOffset(SecondTableInA::VT_REFER_TO_C, refer_to_c);
186186
}
187-
SecondTableInABuilder(flatbuffers::FlatBufferBuilder &_fbb)
187+
explicit SecondTableInABuilder(flatbuffers::FlatBufferBuilder &_fbb)
188188
: fbb_(_fbb) {
189189
start_ = fbb_.StartTable();
190190
}

‎tests/namespace_test/namespace_test2_generated.ts‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// automatically generated by the FlatBuffers compiler, do not modify
22

3-
import * as NS4989953370203581498 from "./namespace_test1_generated";
3+
import * as NS9459827973991502386 from "./namespace_test1_generated";
44
/**
55
* @constructor
66
*/
@@ -39,24 +39,24 @@ static getRootAsTableInFirstNS(bb:flatbuffers.ByteBuffer, obj?:TableInFirstNS):T
3939
* @param {NamespaceA.NamespaceB.TableInNestedNS=} obj
4040
* @returns {NamespaceA.NamespaceB.TableInNestedNS|null}
4141
*/
42-
fooTable(obj?:NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS):NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS|null {
42+
fooTable(obj?:NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS):NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS|null {
4343
var offset = this.bb.__offset(this.bb_pos, 4);
44-
return offset ? (obj || new NS4989953370203581498.NamespaceA.NamespaceB.TableInNestedNS).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
44+
return offset ? (obj || new NS9459827973991502386.NamespaceA.NamespaceB.TableInNestedNS).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
4545
};
4646

4747
/**
4848
* @returns {NamespaceA.NamespaceB.EnumInNestedNS}
4949
*/
50-
fooEnum():NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS {
50+
fooEnum():NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS {
5151
var offset = this.bb.__offset(this.bb_pos, 6);
52-
return offset ? /** @type {NamespaceA.NamespaceB.EnumInNestedNS} */ (this.bb.readInt8(this.bb_pos + offset)) : NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS.A;
52+
return offset ? /** @type {NamespaceA.NamespaceB.EnumInNestedNS} */ (this.bb.readInt8(this.bb_pos + offset)) : NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS.A;
5353
};
5454

5555
/**
5656
* @param {NamespaceA.NamespaceB.EnumInNestedNS} value
5757
* @returns {boolean}
5858
*/
59-
mutate_foo_enum(value:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS):boolean {
59+
mutate_foo_enum(value:NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS):boolean {
6060
var offset = this.bb.__offset(this.bb_pos, 6);
6161

6262
if (offset === 0) {
@@ -71,9 +71,9 @@ mutate_foo_enum(value:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS
7171
* @param {NamespaceA.NamespaceB.StructInNestedNS=} obj
7272
* @returns {NamespaceA.NamespaceB.StructInNestedNS|null}
7373
*/
74-
fooStruct(obj?:NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS):NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS|null {
74+
fooStruct(obj?:NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS):NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS|null {
7575
var offset = this.bb.__offset(this.bb_pos, 8);
76-
return offset ? (obj || new NS4989953370203581498.NamespaceA.NamespaceB.StructInNestedNS).__init(this.bb_pos + offset, this.bb) : null;
76+
return offset ? (obj || new NS9459827973991502386.NamespaceA.NamespaceB.StructInNestedNS).__init(this.bb_pos + offset, this.bb) : null;
7777
};
7878

7979
/**
@@ -95,8 +95,8 @@ static addFooTable(builder:flatbuffers.Builder, fooTableOffset:flatbuffers.Offse
9595
* @param {flatbuffers.Builder} builder
9696
* @param {NamespaceA.NamespaceB.EnumInNestedNS} fooEnum
9797
*/
98-
static addFooEnum(builder:flatbuffers.Builder, fooEnum:NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS) {
99-
builder.addFieldInt8(1, fooEnum, NS4989953370203581498.NamespaceA.NamespaceB.EnumInNestedNS.A);
98+
static addFooEnum(builder:flatbuffers.Builder, fooEnum:NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS) {
99+
builder.addFieldInt8(1, fooEnum, NS9459827973991502386.NamespaceA.NamespaceB.EnumInNestedNS.A);
100100
};
101101

102102
/**

‎tests/union_vector/union_vector_generated.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ struct AttackerBuilder {
214214
void add_sword_attack_damage(int32_t sword_attack_damage) {
215215
fbb_.AddElement<int32_t>(Attacker::VT_SWORD_ATTACK_DAMAGE, sword_attack_damage, 0);
216216
}
217-
AttackerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
217+
explicit AttackerBuilder(flatbuffers::FlatBufferBuilder &_fbb)
218218
: fbb_(_fbb) {
219219
start_ = fbb_.StartTable();
220220
}
@@ -327,7 +327,7 @@ struct MovieBuilder {
327327
void add_characters(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<void>>> characters) {
328328
fbb_.AddOffset(Movie::VT_CHARACTERS, characters);
329329
}
330-
MovieBuilder(flatbuffers::FlatBufferBuilder &_fbb)
330+
explicit MovieBuilder(flatbuffers::FlatBufferBuilder &_fbb)
331331
: fbb_(_fbb) {
332332
start_ = fbb_.StartTable();
333333
}

0 commit comments

Comments
 (0)