История изменений
Исправление Manhunt, (текущая версия) :
С++ не поддерживает интроспецию, так что все поля приходится обходить вручную. К тому же они разного размера со всеми вытекающими.
Есть два культурных пути: либо как в boost::serialization (при каждом классе оператор, перечисляющий его поля), либо как в google protobuffers (кодогенерация из специального языка в c++). Ну и еще третий путь: с опорой на парсер компилятора (парсить c++ код в xml, а из xml генерировать c++ код сериализаторов).
Исправление Manhunt, :
С++ не поддерживает интроспецию, так что все поля приходится обходить вручную. К тому же они разного размера со всеми вытекающими.
Есть два культурных пути: либо как в boost::serialization (при каждом классе оператор, перечисляющий его поля), либо как в google protobuffers (кодогенерация из специального языка в c++). Ну и еще третий путь: с опорой на парсер компилятора (парсить c++ код в xml и затем когоденерировать сериализаторы на c++).
Исходная версия Manhunt, :
С++ не поддерживает интроспецию, так что все поля приходится обходить вручную. К тому же они разного размера со всеми вытекающими.
Есть два культурных пути: либо как в boost::serialization (при каждом классе оператор, перечисляющий его поля), либо как в google protobuffers (кодогенерация из специального языка в c++), либо с опорой на парсер компилятора (парсить c++ код в xml и затем когоденерировать сериализаторы на c++).