【发布时间】:2012-08-08 14:21:04
【问题描述】:
这里的语法有什么问题?我关注this资源。
char x = 'a', y = 'a';
[&x,=y]() { // error: expected identifier before '=' token
++x; ++y; // error: 'y' is not captured
}();
我使用 MinGW g++ 4.5.2 命令行编译器和-std=c++0x
澄清:我想按值传递y。
【问题讨论】:
-
要增加
y的值,必须通过引用来捕获它。要按价值捕获,只需编写y就足够了。不需要写`=y' -
@AdityaKumar 全部为真,但 OP 只是试图从博客文章中编译一个示例,其中博客作者专门通过值传递了第二个参数,以表明增量的效果不会影响关闭over 变量(因为按值传递是一个副本)。
-
默认值捕获不可修改。关于它的各种问题,例如stackoverflow.com/questions/5501959/…
-
@BoBTFish:我明白了——谢谢,现在很清楚了。