Здравствуйте, Marty, Вы писали:
M>Вполне простой, вполне оптимальный, вполне расширяемый. Уровень мидла в РФ, на ЗП 3-4 кбаксов по курсу
Но вообще если бы такая задача возникла — использовать сериализатор — то зачем его писать с нуля, когда есть готовые, годами отлаженные?
S>>2. Скорость — чтобы быль чем меньше лишних преобразований (особенно тяжелых — без фанатизма) и копирований памяти туда-сюда. M>Приведённый пример вполне отвечает этому критерию
Ну в вашем же коде для сериализации — если нужно по итогу получить массив байт uint8_t* для FFI — нужно будет создать буффер (вектор байт) — и по сути скопировать в него все данные — расширяя _buff.resize(_buff.size() + size);
Т.е. по сути делается дурная работа — перекладывание байт из одного хранилища m_place в другое. Зафига?
Я этого шага избежал с помощью перемещения — забрал просто уже существующие байты пакета, т.к. они уже ему, готовому к умному погребению, более не понадобятся.