Chociaż kwalifikowanie wartości wyliczeniowej z nazwą wyliczenia jest nieprawidłowe C++ 03, to jest to poprawne C++ 11, z tego co rozumiem. Pomimo tego, MSVC 10 generuje ostrzeżenie C4482 za:Czy można bezpiecznie wyłączyć ostrzeżenie MSVC C4482?
enum E { A, B };
int i = E::A; // warning C4482 (but valid C++11?)
Ponieważ znaczna część naszego kodu używa C++ 11 możliwości (zwłaszcza lambdy), wydaje się bezpieczne, aby wyłączyć to ostrzeżenie. Czy mam rację, że kod jest prawidłowy C++ 11?
Uwaga: Nie napisałem kodu, o którym mowa, a wolałbym nie przechodzić i zmieniać każdego wystąpienia tego.
Edytuj: Dodano kilka istotnych linków.
- MSDN page for the warning.
- Another question about the warning. Pytanie i odpowiedzi wydają się odnosić do C++ 03.
Dzięki. Tak myślałem. Potrzebowałem kogoś, kto by potwierdził, że czegoś mi nie brakuje. – jakar