original_order и массивы в FlatBuffers

В документации говорится о 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

1

Решение

Вам не нужно original_order, original_order влияет на порядок полей в table, У ваших таблиц есть только одно поле, так что это никак не повлияет. Векторы никогда не затрагиваются. Я забыл, почему у нас даже есть этот флаг, при нормальных обстоятельствах он бесполезен.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]