При определении значения перечисления с именем перечисления недействительно С++ 03, это действительно С++ 11, из того, что я понимаю. Несмотря на это, MSVC 10 генерирует предупреждение C4482 для следующего:
enum E { A, B };
int i = E::A; // warning C4482 (but valid C++11?)
Так как большая часть нашего кода использует возможности С++ 11 (особенно lambdas), кажется безопасным отключить это предупреждение. Правильно ли, что код действителен С++ 11?
Примечание. Я не писал код, о котором идет речь, и я бы предпочел не проходить и изменять каждое его появление.
Изменить: Добавлены некоторые релевантные ссылки.
- Страница MSDN для предупреждения.
- Еще один вопрос об предупреждении. Вопрос и ответы все, кажется, ссылаются на С++ 03.