по старинке T::setialize ::desirialize, или заморочиться каким нибудь meta_type_traits<T> на основе тупла по полям для автогенарации этих сериалайз и прочего.
По старинке быстрее проще и жёстче.
На треитсах гибче и перспективнее, особенно если рефлексию завезут.
Не знаю как быть?
ключевое слово тут ЕСЛИ
Если (нет) ее все-таки завезут, с высокой вероятностью Ваше текущее решение мгновенно устареет. К сожалению, достаточно удобного решения для сериализации-десериализации не встречал. Если кто знает (желательно DSL'ом) - буду признателен за ссылку. Kaitai, Spicy, protobuf известны.
Есть еще https://github.com/Stiffstream/json_dto
Не конкретизировал, да: мне бы обобщенное, для сырых бинарных форматов. Можно даже неготовое. Встройку от ImHex тоже знаю.
Я не знаю. Поделитесь, пожалуйста, вдруг сгодится.
В составе этого есть pattern language.
А. Ох. Видимо не то что я ждал)
А зачем? Просто потренироваться? Если нет - то всё уже написано: берёшь boost::describe для автосериализации и прикручиваешь любой существующий сериализатор (boost::serialize, cereal, etc.). Там буквально 1-2 функции написать и у тебя готовая автосериализация
Спасибо посмотрю. Вопрошал, конечно, в том числе чтобы и посоветовали. Сейчас задача сериализации своеобразная - все объекты на арене, заморозить мир, пропатчить указатели, сохранить всю арену. Десеревлизация - загрузить всю арену, пропатчить указатели, готово. Буст такое может?
Обсуждают сегодня