lambda 表达式:

Lambda表达式完整的声明格式如下:

[capture list] (params list) mutable exception-> return type { function body }

各项具体含义如下:

  1. capture list:捕获外部变量列表
  2. params list:形参列表
  3. mutable 指示符:用来说用是否可以修改捕获的变量
  4. exception:异常设定
  5. return type:返回类型
  6. function body:函数体

我们这里先不讨论 exception

我们可以忽略参数列表和返回类型,但必须永远包含捕获列表和函数体:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main(void){
 5     auto f = [] { return 42; };
 6     auto g = [] {int a = 1; a++; return a;};
 7     cout << f() << endl;//42
 8     cout << g()  << endl;//2
 9     return 0;
10 }
View Code

相关文章: