Я должен пройти boost::shared_ptr
:
boost::shared_ptr<Protobuf::Person::Profile> pProfile =
boost::make_shared<Protobuf::Person::Profile>();
который является указателем protobuf на функцию oPerson.set_allocated_profile(pProfile)
protobuf, но oPerson.set_allocated()
ожидает указатель на Protobuf::Person::Profile
.
Я пробовал несколько способов, но думаю, что когда я пытаюсь преобразовать объект protobuf в JSON, используя pbjson::pb2Json
, библиотечную функцию, построенную на быстром json, указатель выходит за пределы области видимости, вызывая ошибку сегментации.
Метод 1:
oPerson.set_allocated_profile(pProfile.get());
Метод 2:
oPerson.set_allocated_profile(&*pProfile);