Pull to refresh

Comments 6

Идея интересная, но боюсь на большой кодовой базе, когда такие шаблоны генерируются под каждый класс, билд тайм будет значительно замедляться. В целом понятно, как c помощью шаблонов и визитора сериализовать или отобразить поля класса, но как таким способом проделать обратную операцию, т.е. по json восстановить объект?
По json восстановить объект — собственно то же самое, только вместо записи происходит чтение поля из json. В статье конечно код сильно упрощен, но в движке все поддерживается.

Кода генерится и правда много, но не больше чем если бы он генерился просто для сериализации. Здесь ведь просто специализация шаблона. А типы повторяются. Тоже самое почти что
имеет смысл смотреть в сторону:
boost::hana::BOOST_HANA_ADAPT_STRUCT — для обозначения мемберов класса/структуры под сериализацию.
nlohman::json секцию adl_serializer — для перевода в json и обратно

У нас было подобное решение с шаблонами-миксинами и кодогенератором на одном старом проекте... В результате проект собирался вечность, дебагать нагенеренное было практически невозможно, да и итоговая производительность не радовала. Выкинули вот это вот всё - полегчало) правда)

На что заменили? У вас тоже сериализация была? У меня вроде не оч заметно, пока что )

Шаблоны заменили на проперти-классы, которые объединены в структуру типа дерева. Сериализацию, соответственно, на чтение и запись дерева. Это позволило сохранить совместимость со старыми версиями файлов, где порядок и количество параметров отличалось.

И от кодогенератора избавились. Ни к чему оно.

Sign up to leave a comment.

Articles