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