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

2024-04-21

我阅读了 boost asio http 服务器示例代码(请参阅http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp 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 函数中并未使用 self 变量。那么这样做有什么好处呢?


这样做是为了确保connection对象的寿命比异步操作长:只要 lambda 处于活动状态(即 async. 操作正在进行中),connection实例也还活着。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐