Generate type traits for unions to map a type to the corresponding u… (#4032)

*  Generate type traits for unions to map a type to the corresponding union enum value.

* Fixed break with union enum type traits when type is in a namespace.

* Fixed spacing and variable names in type traits generation to match style guidelines.

*  Fixed spacing in type traits generation to match style guidelines.

* Regenerated test schema header.
This commit is contained in:
jbrads
2016-10-03 22:14:25 +01:00
committed by Wouter van Oortmerssen
parent f6c1a1ebcf
commit b075b8c49d
3 changed files with 34 additions and 1 deletions

Binary file not shown.

View File

@@ -76,6 +76,22 @@ inline const char **EnumNamesAny() {
inline const char *EnumNameAny(Any e) { return EnumNamesAny()[static_cast<int>(e)]; }
template<typename T> struct AnyTraits {
static const Any enum_value = Any_NONE;
};
template<> struct AnyTraits<Monster> {
static const Any enum_value = Any_Monster;
};
template<> struct AnyTraits<TestSimpleTableWithEnum> {
static const Any enum_value = Any_TestSimpleTableWithEnum;
};
template<> struct AnyTraits<MyGame::Example2::Monster> {
static const Any enum_value = Any_MyGame_Example2_Monster;
};
inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *union_obj, Any type);
MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS {