【发布时间】:2012-11-27 10:49:19
【问题描述】:
我的问题是如何将智能指针分配给另一个?我也不确定如何绕过临时变量?
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 >()}”
我知道我遗漏了一些明显的东西,我现在可以看到它
【问题讨论】:
标签: c++ boost-asio shared-ptr