Сериализация объектов с блэкджеком и метапрограммированием.

RU / День 2 / 18:00 / Зал 3

Невозможно представить разработчика, который ни разу не сталкивался с задачей сериализации. В классическом представлении сериализация в языке C++ выглядит как «virtual string serialize() const = 0;» или генерируется автоматически через рефлексию. Однако и в том и в другом случае требуется доступ к базовому классу или к приватным полям класса. Но что, если они не доступны?

В этом докладе Александр опишет подход к полуавтоматической сериализации через геттеры при помощи метапрограммирования. В процессе мы «вскроем» сигнатуру геттера, применим мета-магию для его вызова, столкнемся с рекурсивными шаблонами (поймем, почему это плохо и как с этим бороться), а также узнаем в чем выигрыш подхода и какова его цена.