Нужно передать сообщение полученое по одному протоколу в виде похожего сообщения по другому протоколу.
один протокол, пусть p1
message A { X x; ...}
message B {X x; ...}
Пытаюсь заполнить сообщение для передачи вот так, через строку
p1:A a1 = someProcedure();
p2::X *x2 = new p2::X();
std::string tmp;
a.x().SerializeToString(&tmp);
x2->ParseFromString(tmp);
a1->set_allocated_x(x2); // a1 типа p1:A
Все работает конечно. Но, блин, чем то напрягает это решение ... как то коряво )
P.S. я правильно понимаю, что утечки тут нет (x2 = new), т.к. протобуф сам освободит память?