Чтение в Основы буфера протокола: C++, не нашел ничего, что соответствовало бы ситуации:; со следующим .proto, обработанным с помощью --cpp_out
,
message A {
required int32 foo = 1;
}
message B {
optional A data = 1;
}
не создается явно выглядящий метод доступа/сеттер для установки настраиваемого необязательного поля (включая раздел «вложенные типы», который я тоже лень писать сюда):
// accessors -------------------------------------------------------
// optional .A = 1;
inline bool has_a() const;
inline void clear_a();
static const int kAFieldNumber = 1;
inline const ::A& a() const;
inline ::A* mutable_a();
inline ::A* release_a();
Итак, как установить B::A в некоторый экземпляр A в C++?
TEST FILES: .proto, сгенерированные результаты: .h, .ccи некоторые .java
Upd: в Java вложенные поля устанавливаются через Builder: например, см. ссылку выше (ищите setData).