我是 C++11 lambda 的新手,想通过绑定(bind)第二个参数将二进制 lambda 转换为一元 lambda:
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
[如何]做到这一点?
最佳答案
如果您已经使用了 lambda 表达式,只需使用另一个:
auto lambda2 = [&] (int i) {return lambda1(i, 5);};
关于c++ - 是否可以绑定(bind) lambda 函数的第二个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33986435/