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

为什么boost示例再次调用'shared_from_this()',而不是使用闭包变量,boost,boost-asio,Boost,Boost Asio,在方法中的连接对象中,do_read和do_write捕获来自此()的shared_以解决连接对象的寿命问题。仍然不清楚为什么代码在第67行和第88行再次调用this()的shared\u,而不是使用self: 40 auto self(shared_from_this()); 41 socket_.async_read_some(boost::asio::buffer(buffer_), 42 [this, self](boost::system::error_code ec,

在方法中的连接对象中,
do_read
do_write
捕获来自此()的
shared_以解决连接对象的寿命问题。仍然不清楚为什么代码在第67行和第88行再次调用this()的
shared\u,而不是使用
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中,即使它未使用