Ral*_*zky 7 c++ lambda mutable c++11
这编译:
[]{};
Run Code Online (Sandbox Code Playgroud)
这也是:
[]() mutable {};
Run Code Online (Sandbox Code Playgroud)
但是使用这段代码,编译器会向我抛出错误消息:
[] mutable {};
^~~~~~~
error: lambda requires '()' before 'mutable'
Run Code Online (Sandbox Code Playgroud)
有什么特别的理由吗?
这只是语法在标准中编写方式的结果.我不知道这是否是一种疏忽.
lambda表达式以lambda导入器(括号)开头,后跟可选的lambda声明符.
lambda声明符包含参数列表,mutable,attributes,exception specifier和return type.除参数列表外,所有这些都是可选的.因此,如果存在lambda声明符,则括号必须在那里.
这就是为什么你不仅可以拥有mutable关键字.
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |