update C++ generator to emit scoped enums in vector of unions (#7075)

This commit is contained in:
Derek Bailey
2022-02-02 22:29:21 -08:00
committed by GitHub
parent 424988f308
commit fd0d1ed929
2 changed files with 7 additions and 2 deletions

View File

@@ -468,6 +468,10 @@ inline bool IsUnion(const Type &type) {
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) {
return type.base_type == BASE_TYPE_VECTOR;
}

View File

@@ -671,8 +671,9 @@ class CppGenerator : public BaseGenerator {
}
bool VectorElementUserFacing(const Type &type) const {
return opts_.g_cpp_std >= cpp::CPP_STD_17 && opts_.g_only_fixed_enums &&
IsEnum(type);
return (opts_.scoped_enums && 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 = "") {