c++ boost c++11 lambda boost-asio

c++ - ¿Cuál es la razón de usar la variable auto self(shared_from_this()) en la función lambda?



boost c++11 (1)

Leí el código de ejemplo del servidor http de boost asio (consulte http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp ) y encuentro el auto self(shared_from_this()); La variable se ha utilizado en el ámbito de captura ( [this, self] ). Pero la propia variable no se ha utilizado en la función lambda. Entonces, ¿cuál es el beneficio de hacerlo?


Esto se hace para asegurarse de que el objeto de connection sobreviva a la operación asíncrona: mientras la lambda esté activa (es decir, la operación asíncrona está en curso), la instancia de connection está activa.