为什么boost示例再次调用`shared_from_this()`而不是使用闭包变量

Vla*_*nko 4 boost boost-asio

在该连接对象升压ASIO HTTP服务器实例的方法do_read,并do_writeshared_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());
```
Run Code Online (Sandbox Code Playgroud)

Igo*_* R. 8

没有实际的理由(我猜这只是旧C++ 03示例的一个剩余部分,它被重构为C++ 11风格).使用self会更好,因为它已经被捕获了.

我能想到的唯一"教育"原因可能是证明明确捕获的self内容存储在lambda中,即使它未被使用.