C++14的Lambda新特性
在C++14 中新增了对捕获变量的初始化,且不影响原来的变量
int a;
auto func = [a = 10]()mutable{
cout << a << endl;
};
func();
cout << "a:" << a << endl; //这里的a还是没有初始化的状态
自动获取实参类型
auto func = [auto v1,auto v2] { return v1 + v2; }
cout << func(10,20.4) << endl;
C++17新特性 可以对if、switch语句进行初始化
//作用域是其初始化后的if else 语句
if(int a = 10; a>10) {
a = 1;
}else if(int b = 20; a> 5 && b>10) {
b = 2;
a = 2;
}else if(0) {
b = 3;
a = 3;
}else {
b = 4;
a = 4;
}
//变量a的作用域是他所在的switch 语句
switch(int a = 10; a){
case 1:
break;
case 5:
break;
default:
break;
}