Оба result.class.to_s
и result.class.name
работают.
Кажется, что Google добавил, инструкция для repeated
имена полей (укажите 4) в https://developers.google.com/protocol-buffers/docs/style в это время:
Использование pluralized называет для повторных полей.
repeated string keys = 1; ... repeated MyMessage accounts = 17;
Это генерирует одно плохое имя функции для add_<field_name>
функция членства:
// Bad method name.
auto* const newKey = msg.add_keys();
// OK!
auto* const anotherNewKey = msg.mutable_keys()->Add();
// OK!
auto const * const allKeys = msg.keys();
auto const& firstKeys = msg.keys(0);
можно было утверждать, что первый метод избыточен так или иначе. При помощи mutable_<field_name>
функция членства я не вижу, что любые проблемы расценивают ужасные имена методов, если множественные имена полей используются для repeated
поля.
Поэтому я попытаюсь следовать этой инструкции с этого времени. Другая причина его: Мы также склонны использовать множественные имена переменной для контейнеров/наборов в C++, например,
auto keys = std::vector<std::string>{};