在学习时,忽然看见示例中出现了[](){}
与[]{}()
两种 lambda 表达式的用法
突然对[]{}()
这种用法感到费解
经查阅,前者[](){}
是标准的 lambda 表达式用法
而后者[]{}()
则是 lambda 的简写版+调用,即省略了用于参数传入的(),并在构建完匿名函数后直接调用了自己。
例如:
int c = [](int n){
return [n](int x){
return n + x;
}(1);
};
a = c(2);
int c = [](int n){
return [n]{
return 1;
}();
}(2);