@@ -87,6 +87,39 @@ void {{$entity.Meta.CppNamespacePrefix}}{{$entity.Meta.CppName}}::_OBX_MetaInfo:
8787 const auto* table = flatbuffers::GetRoot<flatbuffers::Table>(data);
8888 assert(table);
8989 {{range $property := $entity.Properties}}
90+ {{- if eq "std::string" $property.Meta.CppType -}}
91+ {
92+ auto* ptr = table->GetPointer<const flatbuffers::String*>({{$property.FbvTableOffset}});
93+ if (ptr) {
94+ outObject.{{$property.Meta.CppName}}
95+ {{- if $property.Meta.Optional}}
96+ {{- if IsOptionalPtr $.Optional -}}
97+ .reset(new std::string(ptr->c_str(), ptr->size()));
98+ {{- else -}}
99+ .emplace(ptr->c_str(), ptr->size());
100+ {{- end}}
101+ {{- else -}}
102+ .assign(ptr->c_str(), ptr->size());
103+ {{- end}}
104+ } else {
105+ outObject.{{$property.Meta.CppName}}
106+ {{- if $property.Meta.Optional -}}
107+ .reset();
108+ {{- else -}}
109+ .clear();
110+ {{- end}}
111+ }
112+ }
113+ {{else if and ( and $.NaNAsNull $property.Meta.Optional ) $property.Meta.FbIsFloatingPoint }}
114+ if (table->CheckField({{$property.FbvTableOffset}})) {
115+ outObject.{{$property.Meta.CppName}}
116+ {{- template "field-value-assign-pre" $property.Meta -}}
117+ table->GetField<{{$property.Meta.CppFbType}}>({{- $property.FbvTableOffset}}, {{$property.Meta.FbDefaultValue}}){{if eq "bool" $property.Meta.CppType}} != 0{{end}}
118+ {{- template "field-value-assign-post" $property.Meta}};
119+ } else {
120+ outObject.{{$property.Meta.CppName}}.reset();
121+ }
122+ {{- else}}
90123 {{- if $property.Meta.Optional}}if (table->CheckField({{$property.FbvTableOffset}})) {{end}}
91124 {{- if eq "std::vector<std::string>" $property.Meta.CppType}}{
92125 auto* ptr = table->GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>*>({{$property.FbvTableOffset}});
@@ -99,12 +132,6 @@ void {{$entity.Meta.CppNamespacePrefix}}{{$entity.Meta.CppName}}::_OBX_MetaInfo:
99132 if (itemPtr) outObject.{{$property.Meta.CppName}}{{$property.Meta.CppValOp}}emplace_back(itemPtr->c_str());
100133 }
101134 }
102- }{{else if eq "std::string" $property.Meta.CppType}}{
103- auto* ptr = table->GetPointer<const flatbuffers::String*>({{$property.FbvTableOffset}});
104- if (ptr) outObject.{{$property.Meta.CppName}}
105- {{- if $property.Meta.Optional}}{{template "field-value-assign-pre" $property.Meta}}ptr->c_str(){{template "field-value-assign-post" $property.Meta}}
106- {{- else}}.assign(ptr->c_str())
107- {{- end}};
108135 }{{else if $property.Meta.FbIsVector}}{
109136 auto* ptr = table->GetPointer<const {{$property.Meta.FbOffsetType}}*>({{$property.FbvTableOffset}});
110137 if (ptr) outObject.{{$property.Meta.CppName}}
@@ -118,6 +145,7 @@ void {{$entity.Meta.CppNamespacePrefix}}{{$entity.Meta.CppName}}::_OBX_MetaInfo:
118145 {{- template "field-value-assign-post" $property.Meta}};
119146 {{- end}}
120147 {{end}}
148+ {{- end}}
121149}
122150{{end}}
123151` ))
0 commit comments