我必须通过boost::shared_ptr
:
boost::shared_ptr<Protobuf::Person::Profile> pProfile =
boost::make_shared<Protobuf::Person::Profile>();
这是protobuf的的指针,在protobuf的函数oPerson.set_allocated_profile(pProfile)
但oPerson.set_allocated()
需要一个指向Protobuf::Person::Profile
。
我曾尝试几种方法,但我认为,当我尝试使用protobuf的对象转换为JSON pbjson::pb2Json
这是建立在快速JSON的库函数,指针超出范围,导致段故障。
方法1:
oPerson.set_allocated_profile(pProfile.get());
方法2:
oPerson.set_allocated_profile(&*pProfile);