Ho letto il codice di esempio del server boost asio http (vedere http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp) e ho trovato che la variabile auto self(shared_from_this());
è stata utilizzata nell'ambito di cattura ([this, self]
). Ma la variabile autonoma non è stata utilizzata nella funzione lambda. Allora qual è il vantaggio di farlo?Qual è il motivo dell'uso della variabile auto self (shared_from_this()) nella funzione lambda?
19
A
risposta
26
Questo viene fatto al fine di assicurarsi che connection
oggetto sopravvive l'operazione asincrona: (. Cioè l'asincrono operazione è in corso) finché il lambda è vivo, l'istanza connection
è vivo pure.
Problemi correlati
- 1. Qual è il tipo di questa funzione fattoriale auto-applicante?
- 2. Dove/qual è la variabile privata nella proprietà auto-implementata?
- 3. variabile "auto" usato in lambda nella propria inizializzazione
- 4. Qual è il tipo di una funzione lambda?
- 5. Qual è il vantaggio delle "espressioni lambda"?
- 6. Usando auto in una funzione lambda
- 7. Qual è il motivo della creazione di IEnumerator?
- 8. Qual è il motivo dell'errore "Uso della variabile locale non assegnata"?
- 9. Qual è lo scopo di una variabile lambda in C#?
- 10. PyQT Collegamento della funzione lambda al segnale
- 11. Qual è il significato della funzione DStream.foreachRDD?
- 12. Riferimento catturato nella definizione della variabile statica
- 13. Python: self .__ class__ vs. tipo (auto)
- 14. Come passare il numero variabile di argomenti alla funzione lambda
- 15. Funzione Self Reference
- 16. C++: È possibile ottimizzare una cattura esplicita lambda non utilizzata?
- 17. Qual è il motivo dell'utilizzo di tale sintassi (0, _.Em)();
- 18. Qual è l'opposto della funzione di esplosione?
- 19. Qual è il significato della colonna Valore per un oggetto nella finestra Variabile debugger NetBeans?
- 20. In Plug.Router qual è il punto della funzione init?
- 21. Qual è il punto della prototipazione della funzione?
- 22. Qual è il modo pitone di inizializzazione della variabile condizionale?
- 23. Rappresentazione Ast della funzione lambda
- 24. Lambda/comprensione concettuale della funzione anonima
- 25. È possibile associare il secondo parametro di una funzione lambda?
- 26. Posso definire una funzione lambda C++ senza auto?
- 27. Qual è il motivo del metodo size() di BitSet?
- 28. boost shared_from_this <>()
- 29. Qual è il significato della variabile locale nasconde un campo?
- 30. Qual è il motivo dell'assegnazione di questa variabile locale senza una richiamata?
Buona spiegazione. Potrebbe per caso avere un'opinione sulla domanda di follow-up su http://stackoverflow.com/q/29613178/836097? –