この問題を見つけるのにかなりの時間がかかりました。次のコード
class Test {
public:
void method();
int _member;
};
void Test::method()
{
struct S {
int s = 0; // same with int s {0};
};
_member;
}
int main(int argc, const char* argv [])
{
return 0;
}
コンパイル エラーが発生します。
1>エラー C2327: 'Test::_member': 型名、静的、または列挙子ではありません
1>エラー C2065: '_member': 宣言されていない識別子
int s = 0;
そして、に置き換えるとすぐにエラーが消えますint s;
。
これは MSVC 2013 でのみ発生し、2015 では発生しません。コンパイラのバグであると確信していますが、私がよく知らない C++ の特殊性 (C++11 と C++ の間で変更されたもの) ではないことを確認したいと思います。 14)。