Как получить номер тега определенного поля из объекта protobuf после компиляции в класс C++?Получение номера тега в google protobuf
Рассмотрим ниже сообщение пример Protobuf и я обобщил это сообщение, чтобы получить соответствующий заголовок C++ для Person класс
Файл: person.proto
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}
В моей C++ кода
Person *foo = new Person();
foo->set_id(123);
foo->set_name("bar");
foo->set_email("[email protected]");
Теперь я хочу получить номер метки каждого поля i n сообщение человека, как показано ниже:
int tag_id = foo->some_method_to_get_tag_number_of_id(); \\tag number of id is 1
int tag_name = foo->some_method_to_get_tag_number_of_name(); \\tag number is 2
int tag_email = foo->some_method_to_get_tag_number_of_email(); \\tag number is 3
Возможно ли получить номер тега, если да, то каким образом?