C++ protobuf消息(c+;+;)类是否提供类似size()和empty()的方法?

C++ protobuf消息(c+;+;)类是否提供类似size()和empty()的方法?,c++,protocol-buffers,C++,Protocol Buffers,例如,我们定义了一条Person消息 message Person { int32 age = 1; string name = 2; }; 我希望以以下方式使用此消息: Person p; assert(p.empty()); p.set_age(10); assert(p.size() == 1); // True p.Clear() assert(p.empty()) // True 这可能吗?关于您希望使用empty()函数的愿望,您可以对proto3中的可选字段使用h

例如,我们定义了一条
Person
消息

message Person {
   int32 age = 1;
   string name = 2;
};
我希望以以下方式使用此消息:

Person p;
assert(p.empty());
p.set_age(10);
assert(p.size() == 1);  // True
p.Clear()
assert(p.empty()) // True

这可能吗?

关于您希望使用
empty()
函数的愿望,您可以对proto3中的可选字段使用
has()
函数。此项已于添加。这里给出了一个例子。

size“应该准确返回什么?好的,所以唯一的方法是迭代所有字段名称,并检查所有
都有\u xyz
方法返回false。可能是的,对于嵌套在其他消息中的消息可能有一条捷径。嵌套消息在父I中有一个has_uu函数,如果至少设置了一个变量,我会说return true谢谢。在我的情况下,消息不是另一个消息中的字段。也许我可以改用DebugString().empty()。