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. 解析错误语法错误意外关闭文件结尾
- 5. Rspec语法错误,期望关闭语句?
- 6. C#语法错误
- 7. C#语法错误 -
- 8. C#语法错误
- 9. 错误关闭
- 10. Javascript关闭语法
- 11. “C:”附近的语法错误。关键字'with'附近的语法错误
- 12. ','附近语法错误 - 可能与calc语法错误有关
- 13. C++ ofstream:评估关闭()错误
- 14. C# - SignalR - 错误而关闭的WebSocket
- 15. c#webbrowser:关闭所有错误信息
- 16. C#错误语法错误为','
- 17. Python 3.3 - 关闭csv文件时出现语法错误
- 18. 关闭导致语法错误在php-5.2
- 19. 由于语法错误SQLite数据库强制关闭
- 20. SQLiteException:接近“=”:语法错误(代码1):(关闭)
- 21. 关闭傀儡类大括号的语法错误
- 22. jQuery语法错误 - 不会关闭脚本
- 23. 与支架PHP语法错误,当所有支架都关闭
- 24. PHP语法错误,关闭功能不正确?
- 25. Objective-C语法错误“Expected”]'“
- 26. ExecuteNonQuery()语法错误c#
- 27. C#,sp_executesql和语法错误
- 28. C#/ SQL语法错误
- 29. C++的语法错误
- 30. C#无效语法错误
增加'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