Sto costruendo una funzione lambda che richiede l'accesso a un discreto numero di variabili nel contesto.Passaggio per riferimento costante nella lista di cattura lambda
const double defaultAmount = [&]{
/*ToDo*/
}();
Preferirei non uso [=]
nella lista come io non voglio un sacco di copie di valore da effettuare.
Sono preoccupato per la stabilità del programma se utilizzo [&]
poiché non desidero che lambda modifichi il set di acquisizione.
Posso passare con riferimento const? [const &]
non funziona.
Forse un buon compilatore ottimizza le copie del valore, quindi è preferibile [=]
.
Sono queste variabili locali o membri? Che compilatore usi? – MikeMB
Un po 'di entrambi. Sto usando MSVC2012 e dovrei scrivere un codice che compili con i nuovi g ++. –