kag*_*san 6 c++ protocol-buffers
阅读协议缓冲区基础:C++,没有发现任何符合这种情况:与以下.proto一起处理--cpp_out,
message A {
required int32 foo = 1;
}
message B {
optional A data = 1;
}
Run Code Online (Sandbox Code Playgroud)
没有明显的生成访问器/ 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();
Run Code Online (Sandbox Code Playgroud)
那么,如何在C++中将B :: A设置为某个A实例?
测试文件:.proto,生成结果:.h,.cc和一些.java
Upd:在Java中,嵌套字段通过Builder设置:例如,参见上面的链接(查找setData).
kag*_*san 11
解决方案:使用mutable修改一些返回的doodad.
A a;
A.set_foo(1);
B b;
B.mutable_A()->CopyFrom(a);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4635 次 |
| 最近记录: |