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

Why the boost example calls `shared_from_this()` again instead of using the closure variable

boost asio HTTP server example in methods do_read and do_write the shared_from_this() is captured to address the connection object lifespan issue, as been answered previously 处的连接对象中。仍然不清楚为什么在第 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++11 样式的旧 C++03 示例的遗留问题)。使用 self 会更好,因为它已经被捕获了。

我能想到的唯一 "educational" 原因可能是证明显式捕获的 self 存储在 lambda 中,即使它未被使用。