protobuf,如何在protobuf消息中遍历所有集合字段,我不知道详细信息?(C++)
protobuf, How to travel all set fields in a protobuf message which I dont know in detail?(C++)
我想旅行的字段已设置在未知的protobuf消息中。我试过
for (int i = 0; i < chk_des->field_count(); ++i) {
const ::google::protobuf::FieldDescriptor* chk_field = chk_des->field(i);
(do somethin...)
}
它只是穿越整个领域。我想去野外旅行。
检索反射对象:
virtual const Reflection *
Message::GetReflection() const
获取此消息的反射接口,该接口可用于动态地读取和修改消息的字段(换句话说,而不知道编译时的消息类型(。
之后,您可以使用例如:
virtual bool Reflection::HasField(const Message & message, const FieldDescriptor * field) const = 0
检查是否设置了给定的非重复字段。
请注意,您还需要传递代码片段中的字段描述符。
const FieldDescriptor *
Descriptor::field(
int index) const
按索引获取字段,其中0<=索引<field_count((。
它们按照.proto文件中定义的顺序返回。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- 我不知道这条线是做什么的
- 如果我不知道每个列表中有多少个数字,我如何将给定数量的数字列表作为输入?
- 我不知道导致错误的原因 (C3074)
- 我不知道为什么这段代码会让核心被转储?
- 我正在尝试制作一个自平衡机器人,但编译时存在错误。我不知道如何解决它
- 我不知道如何使用代码块win32 gui
- 没有函数模板的实例与我不知道为什么的参数列表匹配
- if-else 语句仅按特定顺序工作,我不知道为什么
- DirectX 11 引擎在第三次代码改进后没有突然运行,我不知道为什么
- 程序输入名称和高度并显示它。我不知道如何显示列表中最高人的姓名和身高
- 函数抛出seg错误,我不知道为什么
- 我不知道为什么复制构造函数的调用在 c++ 中不稳定
- 我已经做了一个程序来使用队列链C++表显示学生姓名和身高,现在我想以我不知道如何显示的顺序显示它
- 我看过Stellarium代码,我不知道它从哪里开始
- C++ 我不知道此代码中的输出过程(父类子级)
- 尝试通过多个函数移动数组,但遇到了我不知道如何修复的错误
- protobuf,如何在protobuf消息中遍历所有集合字段,我不知道详细信息?(C++)