【问题标题】:Are lambdas supposed to be able to see local classes?lambdas 应该能够看到本地类吗?
【发布时间】:2018-09-23 00:27:34
【问题描述】:

下面给出VS2010和VS2012中的错误'one': identifier not found

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

稍作调整...

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

VS2010/VS2012 都因这段代码导致编译器崩溃。

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

【问题讨论】:

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


【解决方案1】:

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

[...] 出于名称查找的目的,[...] compound-statement 被考虑在 lambda-expression 的上下文中。 p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多