Подтвердить что ты не робот

Какова причина использования переменной auto self (shared_from_this()) в лямбда-функции?

Я прочитал пример кода поддержки 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]). Но переменная self не используется в лямбда-функции. Тогда какая польза от этого?

4b9b3361

Ответ 1

Это делается для того, чтобы объект connection пережил асинхронную операцию: пока активна лямбда (т.е. выполняется асинхронная операция), экземпляр connection также жив.