diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 9ad6edcdd..57f83410e 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -168,6 +168,17 @@ inline const char* TypeName(const BaseType t) { return nullptr; } +inline const char* StringOf(const BaseType t) { + switch (t) { + #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ + case BASE_TYPE_##ENUM: return #CTYPE; + FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) + #undef FLATBUFFERS_TD + default: FLATBUFFERS_ASSERT(0); + } + return ""; +} + // clang-format on struct StructDef; diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 1033a8954..67f228a25 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -725,16 +725,7 @@ class CppGenerator : public BaseGenerator { if (type.enum_def) return WrapInNameSpace(*type.enum_def); if (type.base_type == BASE_TYPE_BOOL) return "bool"; } - switch (type.base_type) { - // clang-format off - #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ - case BASE_TYPE_##ENUM: return #CTYPE; - FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) - #undef FLATBUFFERS_TD - //clang-format on - default: FLATBUFFERS_ASSERT(0); - } - return ""; + return StringOf(type.base_type); } // Return a C++ pointer type, specialized to the actual struct/table types,