Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il tipo di enumerazione 'type-name' è senza ambito. Preferire 'enum class' a 'enum' (Enum.3)
Osservazioni:
Preferisce enum class evitare enum l'inquinamento nello spazio dei nomi globale.
Nome dell'analisi del codice: PreferScopedEnum
Esempio
L'esempio seguente è riportato dalle linee guida di base di C++:
void Print_color(int color);
enum Web_color { red = 0xFF0000, green = 0x00FF00, blue = 0x0000FF };
enum Product_info { Red = 0, Purple = 1, Blue = 2 };
Web_color webby = Web_color::blue;
// Clearly at least one of these calls is buggy.
Print_color(webby); // C26812
Print_color(Product_info::Blue); // C26812
Questi avvisi vengono corretti dichiarando l'enumerazione come classe enumerazione:
void Print_color(int color);
enum class Web_color { red = 0xFF0000, green = 0x00FF00, blue = 0x0000FF };
enum class Product_info { Red = 0, Purple = 1, Blue = 2 };
Web_color webby = Web_color::blue;
Print_color(webby); // Error: cannot convert Web_color to int.
Print_color(Product_info::Red); // Error: cannot convert Product_info to int.
Vedi anche
Enum.3 Preferisce la classe enumerazione rispetto all'enumerazione