diff --git a/CMakeLists.txt b/CMakeLists.txt index ec7822397..7d677f1c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -483,9 +483,9 @@ if(FLATBUFFERS_BUILD_TESTS) # TODO Add (monster_test.fbs monsterdata_test.json)->monsterdata_test.mon compile_flatbuffers_schema_to_cpp(tests/monster_test.fbs) compile_flatbuffers_schema_to_binary(tests/monster_test.fbs) - compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test1.fbs) - compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test2.fbs) - compile_flatbuffers_schema_to_cpp(tests/union_vector/union_vector.fbs) + compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test1.fbs "--no-includes;--gen-compare;--gen-name-strings") + compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test2.fbs "--no-includes;--gen-compare;--gen-name-strings") + compile_flatbuffers_schema_to_cpp_opt(tests/union_vector/union_vector.fbs "--no-includes;--gen-compare;--gen-name-strings") compile_flatbuffers_schema_to_cpp(tests/optional_scalars.fbs) compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "") compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare") diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 005e01d66..14114c357 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1620,7 +1620,7 @@ class CppGenerator : public BaseGenerator { if (!opts_.generate_name_strings) { return; } auto fullname = struct_def.defined_namespace->GetFullyQualifiedName(name); code_.SetValue("NAME", fullname); - code_.SetValue("CONSTEXPR", "FLATBUFFERS_CONSTEXPR"); + code_.SetValue("CONSTEXPR", "FLATBUFFERS_CONSTEXPR_CPP11"); code_ += " static {{CONSTEXPR}} const char *GetFullyQualifiedName() {"; code_ += " return \"{{NAME}}\";"; code_ += " }"; diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index 540fa2517..416faafba 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -170,7 +170,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructInNestedNS FLATBUFFERS_FINAL_CLASS static const flatbuffers::TypeTable *MiniReflectTypeTable() { return StructInNestedNSTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.NamespaceB.StructInNestedNS"; } StructInNestedNS() @@ -209,7 +209,7 @@ inline bool operator!=(const StructInNestedNS &lhs, const StructInNestedNS &rhs) struct TableInNestedNST : public flatbuffers::NativeTable { typedef TableInNestedNS TableType; - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.NamespaceB.TableInNestedNST"; } int32_t foo = 0; @@ -231,7 +231,7 @@ struct TableInNestedNS FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return TableInNestedNSTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.NamespaceB.TableInNestedNS"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index 968e240cc..201f5fcf2 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -59,7 +59,7 @@ inline const flatbuffers::TypeTable *SecondTableInATypeTable(); struct TableInFirstNST : public flatbuffers::NativeTable { typedef TableInFirstNS TableType; - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.TableInFirstNST"; } flatbuffers::unique_ptr foo_table{}; @@ -87,7 +87,7 @@ struct TableInFirstNS FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return TableInFirstNSTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.TableInFirstNS"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -202,7 +202,7 @@ namespace NamespaceC { struct TableInCT : public flatbuffers::NativeTable { typedef TableInC TableType; - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceC.TableInCT"; } flatbuffers::unique_ptr refer_to_a1{}; @@ -226,7 +226,7 @@ struct TableInC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return TableInCTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceC.TableInC"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -297,7 +297,7 @@ namespace NamespaceA { struct SecondTableInAT : public flatbuffers::NativeTable { typedef SecondTableInA TableType; - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.SecondTableInAT"; } flatbuffers::unique_ptr refer_to_c{}; @@ -319,7 +319,7 @@ struct SecondTableInA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return SecondTableInATypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.SecondTableInA"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index c819c98ad..b5a67f988 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -202,7 +202,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return RapunzelTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "Rapunzel"; } Rapunzel() @@ -238,7 +238,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BookReader FLATBUFFERS_FINAL_CLASS { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return BookReaderTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "BookReader"; } BookReader() @@ -268,7 +268,7 @@ inline bool operator!=(const BookReader &lhs, const BookReader &rhs) { struct AttackerT : public flatbuffers::NativeTable { typedef Attacker TableType; - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "AttackerT"; } int32_t sword_attack_damage = 0; @@ -290,7 +290,7 @@ struct Attacker FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return AttackerTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "Attacker"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -342,7 +342,7 @@ flatbuffers::Offset CreateAttacker(flatbuffers::FlatBufferBuilder &_fb struct MovieT : public flatbuffers::NativeTable { typedef Movie TableType; - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "MovieT"; } CharacterUnion main_character{}; @@ -366,7 +366,7 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { static const flatbuffers::TypeTable *MiniReflectTypeTable() { return MovieTypeTable(); } - static FLATBUFFERS_CONSTEXPR const char *GetFullyQualifiedName() { + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "Movie"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {