#c #c 11 #enums #protocol-buffers
#c #c 11 #перечисления #буферы протокола
Вопрос:
У меня есть перечисление UpdateType в моем сообщении буферов протокола
Я хочу изменить его, используя отражения, для этого мне нужен EnumDescriptor.
Документация по буферам протокола Google гласит
#include <google/protobuf/descriptor.h>
namespace google::protobuf
Describes an enum type defined in a .proto file.
To get the EnumDescriptor for a generated enum type, call TypeName_descriptor(). Use DescriptorPool to construct your own descriptors.
Как я могу получить EnumDescriptor? где функция TypeName_descriptor()?
Комментарии:
1. У меня был тот же вопрос, я поддержал вопрос. Вызвано глупым комментарием в Google protobuf. Зачем давать неверную информацию?
Ответ №1:
Вы можете получить enum_descriptor из FieldDescriptor.
Просто используйте FieldDescriptor::enum_type(), чтобы получить EnumDescriptor*
Надеюсь, это поможет!!
Комментарии:
1. Опечатка в вашем ответе, вы имеете в виду: FieldDescriptor::enum_type()
2. Это помогло, и я поддержал ваш ответ, а также вопрос.