gpt4 book ai didi

c++ - Protocol Buffer : how nested (custom) optional fields are to be handled in C++?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:02 25 4
gpt4 key购买 nike

读入Protocol Buffer Basics: C++ , 没有找到符合情况的东西:;以下 .proto 处理 --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


更新:在 Java 中,嵌套字段是通过 Builder 设置的:例如,请参见上面的链接(查找 setData)。

最佳答案

解决方案:使用 mutable 修改一些返回的装饰物。

A a;
A.set_foo(1);

B b;
B.mutable_A()->CopyFrom(a);

关于c++ - Protocol Buffer : how nested (custom) optional fields are to be handled in C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com