Ich bin neu in C++ 11 lambdas und möchte ein binäres Lambda in eine einstelligen verwandeln durch seinen zweiten Parameter Bindung:Ist es möglich, den zweiten Parameter einer Lambda-Funktion zu binden?
auto lambda1 = [] (int a, int b) { return a+b; };
auto lambda2 = std::bind2nd(lambda1, 5);
Compilation nicht mit
error: no type named 'first_argument_type' in 'struct main(int, char**)::<lambda(int, int)>'
class binder2nd
[Wie] Kann das gemacht werden?
'auto lambda2 = [lambda1] (int a) {return lambda1 (a, 5); } 'Vergessen Sie einfach' bind', lambdas sind einfacher zu benutzen und lesbarer. –
'bind2nd' &' bind1st' sind 'veraltet' und daher durch' bind' ersetzt –
@AnkitAcharya In C++ 17 vielleicht, aber ab sofort sind sie noch gültig. Dies ist ohnehin von eher theoretischem Interesse. – oarfish