Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This pull request adds a new feature to the FlatBuffers compiler (
flatc
) to generate aTypeName()
method in each C++ table and struct. This method returns the fully qualified type name (including namespace) as a string.Changes Introduced
MakeFullyQualifiedName
, to construct fully qualified names using namespaces and type names.GenTable
method inidl_gen_cpp.cpp
to include aTypeName()
method in generated C++ classes when a custom flag is enabled.--gen-type-names
) toflatc
to optionally generate theTypeName()
method.Motivation
The
TypeName()
method allows developers to access the fully qualified name of a table or struct at runtime, similarly to what Protobuf offers withT::descriptor()->full_name()
.Usage
With the
--gen-type-names
flag, generated C++ code will include aTypeName()
method