在该连接对象升压ASIO HTTP服务器实例的方法do_read
,并do_write
在shared_from_this()
捕捉到地址的连接对象的寿命问题,如先前回答。仍然不清楚为什么在第67和88行中代码shared_from_this()
再次调用,而不是使用self
:
40 auto self(shared_from_this());
41 socket_.async_read_some(boost::asio::buffer(buffer_),
42 [this, self](boost::system::error_code ec, std::size_t bytes_transferred)
43 {
....
67 connection_manager_.stop(shared_from_this());
```
没有实际的原因(我想这只是从旧的C ++ 03示例重构为C ++ 11样式后得到的结果)。使用self
将是更可取的,因为它已经被捕获了。
我能想到的唯一“教育”原因可能是为了证明显式捕获的self
内容存储在lambda中,即使未使用也是如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句