c++ - 是否可以绑定(bind) lambda 函数的第二个参数?

标签 c++ c++11 lambda

我是 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/

相关文章:

java - 如何将参数化匿名类转换为 lambda?

c++ - 没有这样的插槽/信号(Qt)

c++ - 在 C++ Makefile 中找不到命令

与arduino的C++通信

c++ - 为什么这个 std::map 键提取函数需要 --std=c++?

regex - GCC中的C++ 0x正则表达式

c++ - 如何创建一个 function_list<> 类来保存具有相同模板语法的 std::function<> vector ?

c++ - C++ 中函数参数的类型别名

c# - 如何在 Lambda LINQ 中排除属性而不是选择

c++ - 将 lambda 传递给对象并从 lambda 内部修改该对象