私の質問は、スマートポインターを他のポインターに割り当てる方法です。一時変数を回避する方法もわかりませんか?
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 >() に変換できません}' 代入
明らかな何かが欠けていることはわかっています。今すぐ見ることができます。