在lambda函数中使用auto self(shared_from_this())变量的原因是什么?

时间:2013-10-14 19:44:05

标签: c++ boost c++11 lambda boost-asio

我阅读了提升asio http服务器示例代码(请参阅http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp),并发现auto self(shared_from_this());变量已用于捕获范围([this, self])。但自变量未在lambda函数中使用。那么这样做有什么好处呢?

1 个答案:

答案 0 :(得分:37)

这样做是为了确保connection对象超过异步操作:只要lambda处于活动状态(即async。操作正在进行中),connection实例就会生效同样。