Предположим, в Google Protobuf определено это сообщение:
message address
{
String street = 1;
String name = 2;
}
message address_list
{
repeated address addrs = 1;
}
И я добавлю адреса в список адресов, которые были выделены:
protobuf::address_list addrs;
for (int i = 1; i < 10; ++i)
{
protobuf::address *addr = addrs.add_addrs();
addr->set_street("foo");
addr->set_name("bar");
}
Кто будет отвечать за удаление объектов, созданных с помощью new? Я знаю, что если вы используете функцию set_allocated
, то protobuf позаботится об удалении, если вы не вызовете release
, но как обстоят дела с повторяющимися полями?