Представление protobuf вашего Foo будет выглядеть примерно так:
message IntPair {
required int32 first = 1;
required int32 second = 2;
};
message FooElem {
required uint32 first = 1;
repeated IntPair second = 2;
};
message Foo {
repeated FooElem data = 1;
};
Обратите внимание, что буферы протокола не обеспечивают "бесшовную" (де) сериализацию в / из ваших собственных структур, как это делает Boost.Serialization. Вы работаете с сгенерированными объектами, полученными при запуске компилятора protoc
в файле, подобном приведенному выше.
Эти сгенерированные классы не будут содержать std::pair
и std::vector
членов, поэтому вам придется копировать данные также / из сгенерированных объектов, если вы хотите продолжать работать со своей устаревшей структурой Foo
.