[英]Protobuf: how nested (custom) optional fields are to be handled in C++?
閱讀協議緩沖區基礎:C ++ ,沒有發現任何符合這種情況: 使用--cpp_out處理以下--cpp_out
,
message A {
required int32 foo = 1;
}
message B {
optional A data = 1;
}
沒有明顯的生成訪問器/ setter來設置自定義可選字段(包括'嵌套類型'部分,我懶得放在這里):
// accessors -------------------------------------------------------
// optional .A = 1;
inline bool has_a() const;
inline void clear_a();
static const int kAFieldNumber = 1;
inline const ::A& a() const;
inline ::A* mutable_a();
inline ::A* release_a();
那么, 如何在C ++中將B :: A設置為某個A實例?
測試文件 : .proto ,生成結果: .h , .cc和一些.java
Upd:在Java中,嵌套字段通過Builder設置:例如,參見上面的鏈接(查找setData )。
解決方案:使用mutable修改一些返回的doodad。
A a;
A.set_foo(1);
B b;
B.mutable_A()->CopyFrom(a);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.