C++ Flatbuffer验证器不工作?

C++ Flatbuffer验证器不工作?,c++,serialization,c++14,flatbuffers,C++,Serialization,C++14,Flatbuffers,我有以下测试示例FlatBuffers模式: namespace test; struct Vec3 { x:float; y:float; z:float; } table Test { pos:[Vec3] (id:0); } root_type Test; 当我编写一个简单的测试代码时,验证器返回false,这我不理解。数据似乎是正确的 #包括 #包括“testbuffer_generated.h” 名称空间t=测试; 无符号整数n=1;//我们存储了多少个位置 flat

我有以下测试示例FlatBuffers模式:

namespace test;
struct Vec3 {
  x:float;
  y:float;
  z:float;
}
table Test {
  pos:[Vec3] (id:0);
}
root_type Test;
当我编写一个简单的测试代码时,验证器返回
false
,这我不理解。数据似乎是正确的

#包括
#包括“testbuffer_generated.h”
名称空间t=测试;
无符号整数n=1;//我们存储了多少个位置
flatbuffers::FlatBufferBuilder;
std::vecs(n,t::Vec3(1,3,4));
auto-vecsofsets=builder.CreateVectorOfStructs(vecs.data(),vecs.size());
autotestbuilder=t::testBuilder(builder);
testBuilder.add_pos(向量集合);
自动测试=testBuilder.Finish();
完工(测试);
uint8_t*file=builder.GetBufferPointer();
std::size\u t size=builder.GetSize();
flatbuffers::验证器v(文件,大小);

STD:请不要把你的C++问题标记成C,它们不是相同的编程语言。你所显示的代码没有在C中编译,除非你使用C,否则不要显示C标记,只要从代码中读取,它看起来是正确的,而且它确实不应该失败。试着做一个
#define FLATBUFFERS\u DEBUG\u VERIFICATION\u FAILURE
,你应该会得到一个断言,它的调用堆栈会提示你失败时读取的内容。谢谢,我会试试:-)好的,它失败了,因为我有一个额外的
文件标识符“EXGR”->它不应该失败,同样当我没有像上面代码那样写文件标识符时,如果它不应该失败,但它确实失败了,那么它就是一个bug