mirror of
https://github.com/google/flatbuffers.git
synced 2026-07-01 21:03:58 +00:00
update C++ generator to emit scoped enums in vector of unions (#7075)
This commit is contained in:
@@ -468,6 +468,10 @@ inline bool IsUnion(const Type &type) {
|
|||||||
return type.enum_def != nullptr && type.enum_def->is_union;
|
return type.enum_def != nullptr && type.enum_def->is_union;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool IsUnionType(const Type &type) {
|
||||||
|
return IsUnion(type) && IsInteger(type.base_type);
|
||||||
|
}
|
||||||
|
|
||||||
inline bool IsVector(const Type &type) {
|
inline bool IsVector(const Type &type) {
|
||||||
return type.base_type == BASE_TYPE_VECTOR;
|
return type.base_type == BASE_TYPE_VECTOR;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -671,8 +671,9 @@ class CppGenerator : public BaseGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool VectorElementUserFacing(const Type &type) const {
|
bool VectorElementUserFacing(const Type &type) const {
|
||||||
return opts_.g_cpp_std >= cpp::CPP_STD_17 && opts_.g_only_fixed_enums &&
|
return (opts_.scoped_enums && IsEnum(type)) ||
|
||||||
IsEnum(type);
|
(opts_.g_cpp_std >= cpp::CPP_STD_17 && opts_.g_only_fixed_enums &&
|
||||||
|
IsEnum(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
void GenComment(const std::vector<std::string> &dc, const char *prefix = "") {
|
void GenComment(const std::vector<std::string> &dc, const char *prefix = "") {
|
||||||
|
|||||||
Reference in New Issue
Block a user