我的问题是如何将智能指针分配给另一个?我也不确定如何绕过临时变量?
typedef boost::asio::ip::tcp::socket TBoostSocket;
typedef boost::shared_ptr<TBoostSocket> TSocket;
TSocket createSocket(const IpcNode::TPath& a_path) {
TSocket socket(new TBoostSocket(*this->getIoservice()));
return socket;
}
//在另一个函数中
TSocket result();
result= createSocket(a_path);
// 编译器输出
错误:获取临时地址 [-fpermissive]
41:错误:分配函数 'IPC::TcpServices::TSocket IPC::result() 无法将 'TSocket* {aka boost::shared_ptr >*}' 转换为 'TSocket() {aka boost::shared_ptr >() }' 在赋值
我知道我遗漏了一些明显的东西,我现在就可以看到