Sono nuovo di C++ 11 lambda e vorrebbe trasformare un lambda binario in uno unario legandosi suo secondo parametro:È possibile associare il secondo parametro di una funzione lambda?
auto lambda1 = [] (int a, int b) { return a+b; };
auto lambda2 = std::bind2nd(lambda1, 5);
compilazione fallisce con
error: no type named 'first_argument_type' in 'struct main(int, char**)::<lambda(int, int)>'
class binder2nd
[Come] Può essere fatto?
'lambda2 auto = [lambda1] (int a) {lambda1 ritorno (a, 5); } 'Basta dimenticare' bind', i lambda sono più facili da usare e più leggibili. –
'bind2nd' &' bind1st' sono 'deprecati' e quindi sostituiti con' bind' –
@AnkitAcharya In C++ 17 forse, ma a partire da ora sono ancora validi. Questo è comunque di interesse piuttosto teorico. – oarfish