Ich lese den Boost asio http Server Beispielcode (siehe http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp) und finde die auto self(shared_from_this());
Variable wurde im Erfassungsbereich ([this, self]
) verwendet. Aber die Selbstvariable wurde nicht in der Lambda-Funktion verwendet. Was bringt es dann, das zu tun?Was ist der Grund für die Verwendung der Auto-Self-Variable (shared_from_this()) in der Lambda-Funktion?
19
A
Antwort
26
Dies wird getan, um sicherzustellen, dass das Objekt connection
den asynchronen Vorgang überlebt: solange das Lambda lebt (d. H. Die asynchrone Operation läuft), ist die connection
Instanz ebenfalls aktiv.
Gute Erklärung. Haben Sie vielleicht eine Meinung über die Follow-up-Frage unter http://stackoverflow.com/q/29613178/836097? –