我遇到了一些涉及本地类和lambdas的奇怪的编译器错误.我已将其缩小到以下示例:
int main()
{
class test {
void foo(int bar) {
auto lambda = [=] (int) { return bar; };
}
};
return 0;
}
VS10说:
error C2326: ‘void main::test::foo(int)’ : function cannot access ‘bar’
在本地类中使用lambdas是否有任何限制,或者这是编译器中的错误?
谢谢你的帮助.
最佳答案 我可以确认只有在函数中定义类并且lambda接受参数时才会在VS10中发生这种情况.
g中没有出现这样的问题.
我相信这确实是一个错误,如果你打开一个缺陷请在这里链接到它,所以我们可以跟进它(否则让我知道,我会打开一个缺陷).