В документации говорится о original_order:
«original_order (для таблицы): поскольку элементы в таблице не нужно хранить в каком-либо определенном порядке, они часто оптимизируются для свободного пространства путем сортировки их по размеру. Этот атрибут предотвращает это».
Я немного смущен сейчас. Я считал, что таблицы FlatBuffers похожи на массивы в C ++, и в своем коде я не увидел никаких проблем. Например, я определяю геометрию LineString следующим образом:
table Vec2List {
p:[Vec2];
}
table Linestring {
points:Vec2List;
}
Это работает. Хотя требуется объявить original_order?
Источник: https://google.github.io/flatbuffers/md__schemas.html
Вам не нужно original_order
, original_order
влияет на порядок полей в table
, У ваших таблиц есть только одно поле, так что это никак не повлияет. Векторы никогда не затрагиваются. Я забыл, почему у нас даже есть этот флаг, при нормальных обстоятельствах он бесполезен.
Других решений пока нет …