lambdas应该能够看到当地的课程吗?

时间:2012-12-12 16:27:08

标签: c++ visual-c++ c++11 lambda visual-studio-2012

以下内容给出了VS2010和VS2012中的错误'one': identifier not found

int main()
{
    struct one {};
    [](){ return one(); }();
}

略微调整......

int main()
{
    struct one {};
    [](){ one uno; return uno; }();
}

VS2010 / VS2012都有来自此代码的编译器崩溃。

所以,问题是(忽略编译器崩溃),lambas应该能够看到本地类吗?

1 个答案:

答案 0 :(得分:4)

是的,VS不正确。从5.1.2p7开始:

  

[...]出于名称查找的目的,复合语句 lambda-expression 的上下文中被考虑。