2013-10-14 2 views
19

나는 부스트 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])에 사용되어 찾아 읽어 보시기 바랍니다. 그러나 자기 변수는 람다 함수에서 사용되지 않았다. 그렇다면 그렇게하는 것이 어떤 이점입니까?람다 함수에서 auto self (shared_from_this()) 변수를 사용하는 이유는 무엇입니까?

답변

26

이는 connection 개체가 비동기 작업을 들보 다 오래 남았습니다 있는지 확인하기 위해 수행됩니다. (즉, 비동기 작업이 진행 중입니다) 한 람다가 살아있는 한, connection 인스턴스뿐만 아니라 살아있다.

+0

좋은 설명. 혹시라도 http://stackoverflow.com/q/29613178/836097에서 후속 질문에 대한 의견이 있으십니까? –

관련 문제