2011-12-08 15 views
1

假設我們在結構中有int,float和兩個字符串。我們希望序列化(在Windows x86上)通過互聯網發送並反序列化我們基於POD的結構(在Linux x64上)。我喜歡protobufs方法,使跨越不同語言序列化的,但有時數據你只是想這樣說:如何將POD結構自動序列化(不使用.proto文件)到協議緩衝區中?

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++沒有反省任意類型的方式。所以在你的代碼中你需要提供你的類型的描述。

順便說一句,Protobuf將序列化爲二進制數據,而不是字符串。

相關問題