Warnung C26827
Haben Sie vergessen, eine Enumeration zu initialisieren oder einen anderen Typ zu verwenden?
Hinweise
Die meisten enum
Typen, die in bitweisen Vorgängen verwendet werden, werden erwartet, dass Mitglieder mit Werten von zwei Mächten verfügen. Diese Warnung versucht, Fälle zu finden, in denen ein Wert nicht explizit einer Enumerationskonstante zugewiesen wurde. Außerdem werden Fälle gefunden, in denen der falsche Enumerationstyp versehentlich verwendet wurde.
Codeanalysename: ALMOST_BITWISE_ENUM
Beispiel
Der folgende Beispielcode verursacht Warnungen 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?
}
Um die Warnung zu beheben, initialisieren Sie die Enumerationskonstante auf den richtigen Wert, oder verwenden Sie den richtigen Enumerationstyp im Vorgang.
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.
}
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für