假设我们在结构中有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 serialization支持开箱即用的所有类型)包含Protocol Buffer的结构?
答案 0 :(得分:1)
您可以定义一个Protobuf模式,将POD结构表示为名称和值对的集合,其中每个值都是基本类型的并集,但真正的问题是C ++无法内省任意类型。因此,在代码中的某处,您需要提供类型的描述。
BTW,Protobuf序列化为二进制数据,而不是字符串。