Ostrzeżenie C26827
Czy zapomnisz zainicjować wyliczenie lub zamierzasz użyć innego typu?
Uwagi
Oczekuje się, że większość enum
typów używanych w operacjach bitowych ma elementy członkowskie z wartościami uprawnień dwóch. To ostrzeżenie próbuje znaleźć przypadki, w których wartość nie została jawnie nadana stałej wyliczenia. Znajduje również przypadki, w których niewłaściwy typ wyliczenia mógł zostać użyty przypadkowo.
Nazwa analizy kodu: ALMOST_BITWISE_ENUM
Przykład
Poniższy przykładowy kod powoduje ostrzeżenie C26827:
enum class AlmostBitWise
{
A = 1,
B = 2,
C = 4,
D
};
int almostBitwiseEnums(AlmostBitWise a, bool cond)
{
return (int)a|(int)AlmostBitWise::A; // Warning C26827: Did you forget to initialize an enum, or intend to use another type?
}
Aby naprawić ostrzeżenie, zainicjuj stałą wyliczenia do poprawnej wartości lub użyj poprawnego typu wyliczenia w operacji.
enum class AlmostBitWise
{
A = 1,
B = 2,
C = 4,
D = 8
};
int almostBitwiseEnums(AlmostBitWise a, bool cond)
{
return (int)a|(int)AlmostBitWise::A; // No warning.
}
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla