diff options
author | Wouter van Oortmerssen <wvo@google.com> | 2014-09-23 11:55:42 -0700 |
---|---|---|
committer | Wouter van Oortmerssen <wvo@google.com> | 2014-09-23 17:25:50 -0700 |
commit | 7b8053570e4407cedfde8d32f6a3c59e5585ef7b (patch) | |
tree | 4eb0b036c80e76a341953a13724fcec00a22ec6c /samples | |
parent | 85c9c83844b494b5422e6ad2fbe8ec1a183d96be (diff) | |
download | flatbuffers-7b8053570e4407cedfde8d32f6a3c59e5585ef7b.tar.gz |
Enums in C++ are now strongly typed.
Accessors and constructors now take enum types rather than ints.
Bug: 16570507
Change-Id: I4b50fd64ad2e662ea2481bc0ccea784326fb31c0
Tested: on Linux and Windows.
Diffstat (limited to 'samples')
-rwxr-xr-x | samples/monster_generated.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/samples/monster_generated.h b/samples/monster_generated.h index dc460382..4fb6a179 100755 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -12,7 +12,7 @@ namespace Sample { struct Vec3; struct Monster; -enum { +enum Color { Color_Red = 0, Color_Green = 1, Color_Blue = 2 @@ -23,9 +23,9 @@ inline const char **EnumNamesColor() { return names; } -inline const char *EnumNameColor(int e) { return EnumNamesColor()[e]; } +inline const char *EnumNameColor(Color e) { return EnumNamesColor()[e]; } -enum { +enum Any { Any_NONE = 0, Any_Monster = 1 }; @@ -35,7 +35,7 @@ inline const char **EnumNamesAny() { return names; } -inline const char *EnumNameAny(int e) { return EnumNamesAny()[e]; } +inline const char *EnumNameAny(Any e) { return EnumNamesAny()[e]; } inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *union_obj, uint8_t type); @@ -61,7 +61,7 @@ struct Monster : private flatbuffers::Table { int16_t hp() const { return GetField<int16_t>(8, 100); } const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(10); } const flatbuffers::Vector<uint8_t> *inventory() const { return GetPointer<const flatbuffers::Vector<uint8_t> *>(14); } - int8_t color() const { return GetField<int8_t>(16, 2); } + Color color() const { return static_cast<Color>(GetField<int8_t>(16, 2)); } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField<Vec3>(verifier, 4 /* pos */) && @@ -84,10 +84,13 @@ struct MonsterBuilder { void add_hp(int16_t hp) { fbb_.AddElement<int16_t>(8, hp, 100); } void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(10, name); } void add_inventory(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> inventory) { fbb_.AddOffset(14, inventory); } - void add_color(int8_t color) { fbb_.AddElement<int8_t>(16, color, 2); } + void add_color(Color color) { fbb_.AddElement<int8_t>(16, static_cast<int8_t>(color), 2); } MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } MonsterBuilder &operator=(const MonsterBuilder &); - flatbuffers::Offset<Monster> Finish() { return flatbuffers::Offset<Monster>(fbb_.EndTable(start_, 7)); } + flatbuffers::Offset<Monster> Finish() { + auto o = flatbuffers::Offset<Monster>(fbb_.EndTable(start_, 7)); + return o; + } }; inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, @@ -96,7 +99,7 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder int16_t hp = 100, flatbuffers::Offset<flatbuffers::String> name = 0, flatbuffers::Offset<flatbuffers::Vector<uint8_t>> inventory = 0, - int8_t color = 2) { + Color color = Color_Blue) { MonsterBuilder builder_(_fbb); builder_.add_inventory(inventory); builder_.add_name(name); |