mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-07 22:03:40 +00:00
[C++] Add option to not generate direct copy methods. (#6166)
* Add option to not generate direct copy methods. The direct copy methods generated by flatc utilize std::vector which isn't allowed on some embedded systems. Permit users of the compiler to not generate these methods so they don't have to be stubbed out. * Update docs for no-cpp-direct-copy option.
This commit is contained in:
@@ -282,6 +282,8 @@ int FlatCompiler::Compile(int argc, const char **argv) {
|
||||
opts.cpp_object_api_string_type = argv[argi];
|
||||
} else if (arg == "--cpp-str-flex-ctor") {
|
||||
opts.cpp_object_api_string_flexible_constructor = true;
|
||||
} else if (arg == "--no-cpp-direct-copy") {
|
||||
opts.cpp_direct_copy = false;
|
||||
} else if (arg == "--gen-nullable") {
|
||||
opts.gen_nullable = true;
|
||||
} else if (arg == "--java-checkerframework") {
|
||||
|
||||
@@ -2398,7 +2398,7 @@ class CppGenerator : public BaseGenerator {
|
||||
}
|
||||
|
||||
// Generate a CreateXDirect function with vector types as parameters
|
||||
if (has_string_or_vector_fields) {
|
||||
if (opts_.cpp_direct_copy && has_string_or_vector_fields) {
|
||||
code_ +=
|
||||
"inline flatbuffers::Offset<{{STRUCT_NAME}}> "
|
||||
"Create{{STRUCT_NAME}}Direct(";
|
||||
|
||||
Reference in New Issue
Block a user