Ho già un sacco di esperienza in C# ma sono nuovo di C++. Ho visto questo problema quando ho provato a usare lambda come facevo.Posso definire una funzione lambda C++ senza auto?
Ad esempio:
auto compare = [] (int i1, int i2) { return i1*2 > i2; }
C'è un modo per definire il lambda con un tipo specifico, piuttosto che la deduzione automatica?
Lo chiedo perché voglio definire un lambda comune per la mia classe. Questa lambada verrà utilizzata in più posti, quindi non voglio definirli più volte. Tuttavia, 'auto' può essere usato solo su membri statici, mentre d'altra parte, voglio accedere a campi non statici nel lambda.
Provare a utilizzare [std :: funzione] (http://www.cplusplus.com/reference/functional/function/function/). – Nard
È possibile accedere ai campi non statici catturando 'this'. – cdhowie