Как сделать поле карты общим для нескольких сообщений в коде protobuf, созданном на C++?C++

Программы на C++. Форум разработчиков
Anonymous
Как сделать поле карты общим для нескольких сообщений в коде protobuf, созданном на C++?

Сообщение Anonymous »

У меня есть несколько нижестоящих клиентов, использующих одно поле карты. Поле карты имеет большой размер и может привести к дополнительным проблемам с производительностью при непреднамеренном копировании.

Код: Выделить всё

message ToClientAReq {
...
map my_map = N1;
}

message ToClientBReq {
...
map my_map = N2;
}

Однако сгенерированный код приводит к тому, что каждое сообщение владеет своим полем карты. Поэтому мне приходится копировать карту несколько раз при назначении каждому объекту запроса, хотя они всегда идентичны.
Как оправдать мой .proto-файл или мой генератор кода, чтобы включить совместное использование полей карты ?

Подробнее здесь: https://stackoverflow.com/questions/792 ... de-generat

Вернуться в «C++»