У меня есть следующий пример теста FlatBuffers Schema:
namespace test;
struct Vec3 {
x:float;
y:float;
z:float;
}
table Test {
pos:[Vec3] (id:0);
}
root_type Test;
Когда я кодирую простой тест, верификатор возвращает false
, чего я не понимаю. Данные кажутся правильными ...?
#include <flatbuffers/flatbuffers.h>
#include "testbuffer_generated.h"
namespace t = test;
unsigned int n = 1; // How many positions we store
flatbuffers::FlatBufferBuilder builder;
std::vector<t::Vec3> vecs(n, t::Vec3(1, 3, 4));
auto vecsOffsets = builder.CreateVectorOfStructs(vecs.data(), vecs.size());
auto testBuilder = t::TestBuilder(builder);
testBuilder.add_pos(vecsOffsets);
auto test = testBuilder.Finish();
builder.Finish(test);
uint8_t* file = builder.GetBufferPointer();
std::size_t size = builder.GetSize();
flatbuffers::Verifier v(file, size);
std::cout << t::VerifyTestBuffer(v); << std::endl;
Я использую главную ветку от https://github.com/google/flatbuffers
Кто-нибудь знает, что может быть не так?