gpt4 book ai didi

c++ - 将 boost::asio tcp 示例移植到 C++11

转载 作者:行者123 更新时间:2023-11-28 00:53:27 24 4
gpt4 key购买 nike

我正在使用来自 boost::asio 的简单 tcp 服务器,可以找到 here .

它运行良好(Boost 1.51,VC++ 2012)。

但是当我尝试更改 connection_ptr 的 typedef 时

typedef boost::shared_ptr<connection> connection_ptr;

typedef std::shared_ptr<connection> connection_ptr;

服务器仍然工作,但在连接完成后崩溃。它发生在 connection manager在方法 stop 中。

似乎删除 boost shared_ptr 是可行的,但是你不能删除 std shared_ptr 吗?为什么会这样?

最佳答案

关于你的评论

I removed this inheritance and simply pass a new instance of shared_ptr each time

不要这样做,这违背了 std::shared_ptr 的目的。您需要使用 std::enable_shared_from_thisshared_from_this() 来增加引用计数,创建具有相同指针的 shared_ptr 的另一个实例将只会导致问题,例如内存访问冲突。

关于c++ - 将 boost::asio tcp 示例移植到 C++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com