mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-22 23:18:51 +00:00
For sparse enums, use a switch statement to generate EnumNameXXX(). (#4845)
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
8b39a0ee53
commit
0d1559bdd4
@@ -981,6 +981,23 @@ class CppGenerator : public BaseGenerator {
|
|||||||
code_ += ";";
|
code_ += ";";
|
||||||
|
|
||||||
code_ += " return EnumNames{{ENUM_NAME}}()[index];";
|
code_ += " return EnumNames{{ENUM_NAME}}()[index];";
|
||||||
|
code_ += "}";
|
||||||
|
code_ += "";
|
||||||
|
} else {
|
||||||
|
code_ += "inline const char *EnumName{{ENUM_NAME}}({{ENUM_NAME}} e) {";
|
||||||
|
|
||||||
|
code_ += " switch (e) {";
|
||||||
|
|
||||||
|
for (auto it = enum_def.vals.vec.begin(); it != enum_def.vals.vec.end();
|
||||||
|
++it) {
|
||||||
|
const auto &ev = **it;
|
||||||
|
code_ += " case {{ENUM_NAME}}_" + Name(ev) + ": return \"" +
|
||||||
|
Name(ev) + "\";";
|
||||||
|
}
|
||||||
|
|
||||||
|
code_ += " default: return \"\";";
|
||||||
|
code_ += " }";
|
||||||
|
|
||||||
code_ += "}";
|
code_ += "}";
|
||||||
code_ += "";
|
code_ += "";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user