2
A
回答
4
char x = 'a', y = 'a';
[&x,y]() mutable{
++x; ++y;
}();
是正确的代码。为了捕获一个可变的值,只需写下它的名字。为了允许修改按值捕获,lambda需要标记为mutable
,否则operator()
标记为const
。
§5.1.2 [expr.prim.lambda] p5
[...]此函数调用操作被声明
const
(9.3.1)当且仅当所述λ-表达的参数声明子句后面没有由mutable。 [...]
+0
您的实例使用C++ 11,这是否是有效的C++ 03语法? – Wolf 2014-09-25 10:17:29
+0
@Wolf这个问题是关于lambda的。 – 2014-09-25 12:40:08
相关问题
- 1. C#开关语法错误
- 2. 关闭C#错误
- 3. FROM关闭中的语法错误?
- 4. C#语法错误
- 5. C#语法错误
- 6. Javascript关闭语法
- 7. ','附近语法错误 - 可能与calc语法错误有关
- 8. SQLiteException:接近“=”:语法错误(代码1):(关闭)
- 9. 与支架PHP语法错误,当所有支架都关闭
- 10. jQuery语法错误 - 不会关闭脚本
- 11. PHP语法错误,关闭功能不正确?
- 12. C++ ofstream:评估关闭()错误
- 13. c#webbrowser:关闭所有错误信息
- 14. MemoryStream关闭错误
- 15. 关闭KeyBoard错误
- 16. C#,sp_executesql和语法错误
- 17. C#,ANTLR,ECMAScript语法错误
- 18. Objective-C语法错误“Expected”]'“
- 19. 语法错误使用C
- 20. C++模板语法错误
- 21. 语法错误在C
- 22. C#/ SQL语法错误
- 23. ExecuteNonQuery()语法错误c#
- 24. C++资源语法错误
- 25. C语法 - 错误C2143:语法错误:在'*'之前缺少')'
- 26. C++只是一个语法错误:语法错误:标识符
- 27. 依赖语法(关闭)
- 28. break语法错误:语法错误
- 29. Android:强制关闭错误
- 30. Java io流关闭错误
增加'y'的值,它必须通过引用捕获。只要写'y'就足够了。不需要写'= y' – 2012-08-08 14:25:23
它也在4.7.0中失败。 – 2012-08-08 14:27:30
@AdityaKumar都是真的,但OP只是试图编写一个博客文章中的示例,其中博客作者专门通过值传递第二个参数来显示增量的影响不会影响已关闭的变量(因为按值传递是副本)。 – 2012-08-08 14:34:24