Как автоматически сериализовать структуры POD (без использования файлов .proto) в Protocol Buffer? - PullRequest
1 голос
/ 09 декабря 2011

Скажем, у нас есть int, float и две строки в структуре.Мы хотим сериализовать (в Windows x86) отправку через Интернет и десериализовать нашу относительно основанную на POD структуру (в Linux x64).Мне нравится подход protobufs, который делает эти данные сериализуемыми на разных языках, но иногда вы просто хотите сказать что-то вроде:

my_obj var;
string data =protobuf.serialize(var);

my_obj new_war = protobuf.deserialize(data);

и не заботиться о том, какие поля у вас были в вашей структуре.Поэтому мне интересно, возможно ли это и как волшебным образом сериализировать POD-подобные данные (скажем, все, что дружит с Boost-сериализацией и всеми типами, которые повышают сериализацию из коробки), содержащие структуры в Protocol Buffer

1 Ответ

1 голос
/ 09 декабря 2011

Вы можете определить схему Protobuf для представления структуры POD в виде набора пар имен и значений, где каждое значение представляет собой объединение примитивных типов, однако реальная проблема заключается в том, что в C ++ нет способа интроспекции произвольного типа.Поэтому где-то в вашем коде вам нужно будет предоставить описание вашего типа.

Кстати, Protobuf сериализует двоичные данные, а не строки.

...