为什么以下有效的C++表达式?这些不是lambdas
[]{}();
{}[]{};
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下吗?
And*_*rew 78
第一个是没有参数列表和后续调用的lambda.
[]{}相当于[](){}整条线相当于
[](){}();
Run Code Online (Sandbox Code Playgroud)
第二个是一对大括号,它引入然后立即关闭一个作用域,然后是一个没有参数列表的未使用的lambda定义:
{
// empty scope
}
[]{}; // lambda
Run Code Online (Sandbox Code Playgroud)
有关lambda定义语法的变体,可以参考http://en.cppreference.com/w/cpp/language/lambda.
Jar*_*d42 41
这是一个lambda电话
[]{}();
Run Code Online (Sandbox Code Playgroud)
它相当于
[](){}();
Run Code Online (Sandbox Code Playgroud)第二个是空范围,后跟一个(未使用的)lambda.
对于没有参数的lambda,Parens是可选的.
| 归档时间: |
|
| 查看次数: |
4275 次 |
| 最近记录: |