我的课程基于boost :: asio教程。
此类有一个私有ctor,派生自enable_shared_from_this。
它的静态成员函数从创建的对象返回一个shared_ptr。
我想将这些指针存储在weak_ptr列表中,因此列表不需要担心它的生命周期,要么延长它。
调用者tcp_serve使用create方法实例化tcp_connection:
tcp_server:
tcp_connection::pointer new_connection =
tcp_connection::create(acceptor_.get_io_service());
tcp_connection:
PUBLIC:
typedef boost::shared_ptr<tcp_connection> pointer;
static pointer create(boost::asio::io_service& io_service)
{
return pointer(new tcp_connection(io_service));
}
PRIVATE:
tcp_connection(boost::asio::io_service& io_service)
: _socket(io_service), _timer(io_service)
{
}
我正在尝试在tcp_server上创建一个列表,我尝试了很多不同类型的类型,但我无法正确地将该对象添加到列表中:
std::list<std::weak_ptr<tcp_connection>> connections;
connections.push_back(new_connection);