LINUX.ORG.RU

История изменений

Исправление 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++).