3

以下は、'one': identifier not foundVS2010およびVS2012でエラーを示します

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

そしてちょっとした工夫で…

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

VS2010/VS2012 の両方で、このコードからコンパイラがクラッシュします。

それで、問題は (コンパイラのクラッシュを無視して)、lambas はローカル クラスの可視性を持つことができるはずですか?

4

1 に答える 1

4

はい、VSは正しくありません。5.1.2p7 から:

[...] 名前検索の目的で、[...]複合ステートメントlambda-expressionのコンテキストで考慮されます。

于 2012-12-12T16:45:06.757 に答える