类 ">a" 包含service_属性:类型为 boost::asio_ioservice 和 sock_,即boost::asio::ip::tcp::socket 类型的unique_ptr。
以下构造函数代码存在,sock_正确指向新的套接字对象。
a::a() : service_(), sock_(new boost::asio::ip::tcp::socket(service_))
{
}
以下构造函数代码没有。调试器将sock_列为"空"。
a::a() : service_(), sock_(nullptr)
{
sock_(new boost::asio::ip::tcp::socket(service_));
}
为什么?
作为声明:
sock_(new boost::asio::ip::tcp::socket(service_));
根本不是有效的 C++。你想过吗
sock_.reset(new boost::asio::ip::tcp::socket(service_));
相反?
或
sock_ = std::make_unique<boost::asio::ip::tcp::socket>(service_);