现代 C++

C++ 11 标准之后的 C++ 称为现代 C++。

1
2
3
auto i = 1;

decltype
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
// 不捕获任何变量
std::function<int(int)> func1 = [](int a) {
    return a;
};

// 捕获外部作用域中所有变量,并作为引用在函数体中使用(按引用捕获)
[&]() {};

// 捕获外部作用域中所有变量,并作为副本在函数体重使用(按值捕获)
[=]() {};

// 按值捕获外部作用域中所有变量,并按引用捕获 foo 变量
[=, &foo]() {};

// 按值捕获 bar 变量,同时不捕获其他变量
[bar]() {};

// 捕获当前类中的this指针,让表达式拥有和当前类成员函数同样的访问权限。如果已经使用了&或者=,就默认添加此选项。
[this]() {};