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()。