Я новичок в C++ 11 лямбды и хотел бы превратить бинарную лямбду в одноместный один связывании второго параметра:Можно ли связать второй параметр лямбда-функции?
auto lambda1 = [] (int a, int b) { return a+b; };
auto lambda2 = std::bind2nd(lambda1, 5);
компиляция завершится неудачно с
error: no type named 'first_argument_type' in 'struct main(int, char**)::<lambda(int, int)>'
class binder2nd
[Как] это можно сделать?
'авто lambda2 = [lambda1] (интермедиат а) {возвращение lambda1 (а, 5); } 'Просто забудьте' bind', lambdas проще в использовании и более читабельны. –
'bind2nd' &' bind1st' 'устаревшие' и поэтому заменены на' bind' –
@AnkitAcharya В C++ 17 возможно, но на данный момент они все еще действительны. В любом случае, это довольно теоретический интерес. – oarfish