Lambda表达式

Lambda 允许inline函数的定义式被用作一个参数或是一个local对象。
1、Lambda表达式

1 auto l = []{ 
2     std::cout << "" << std::endl; 
3 };

[]内指定capture,用来在Lambda内部访问"nonstatic"外部对象
2、[]() 括号内指明参数
3、Lambda不能是模板
4、Lambda可以返回值,可自动推导
5、指明返回类型

[]()->double{ return 42; }

6、[=]传值、[&]传引用
7、可以混合不同的访问权利
[x,&y]、[=,&y]
8、[id]() mutable
9、Lambda的类型

 1 #include<functional>
 2 #include<iostream>
 3 std::function<int(int, int)> returnLambda()
 4 {
 5     return [](int x, int y){ return x*y; }
 6 }
 7 int main()
 8 {
 9     auto lf = returnLambda();
10     std::cout << lf(6,7) << std::endl;
11 }
原文地址:https://www.cnblogs.com/huangsitao/p/11437093.html