我正在使用C++中的协议缓冲区。我的消息只有一个扩展范围。而且我只想使用他们的号码访问所有扩展字段而不知道他们的名字。我怎样才能做到这一点??访问协议缓冲区扩展字段
message Base {
optional int32 id = 1;
extensions 1000 to 1999;
}
extend Base{
optional int32 id2 = 1000;
}
到目前为止,我已经获得了ExtensionRange。
const google::protobuf::Descriptor::ExtensionRange* rng = desc->extension_range(0);
std::cerr << "rng " << rng->start << " " << rng->end << std::endl;
但我不知道要得到Fielddescriptor*
的扩展。
有一个奇怪的事情,那就是extension_count()
返回0.尽管我在我的.proto文件中使用了扩展名。同样FindExtensionBy [Name/number]不能按预期工作?
check boost ::你正在使用的函数:http://stackoverflow.com/questions/7870600/boostbind-call-to-empty-boostfunction-fails-only-if-not-set-in-constructor – PiotrNycz
@ PiotrNycz,我改变了问题陈述。 – v78