警告 C26827
您是否忘記初始化列舉,或打算使用另一種類型?
備註
在位運算中使用的大部分 enum
類型,預期會有具有兩個乘冪值的成員。 此警告會嘗試尋找未明確指定給列舉常數之值的案例。 它也會發現錯誤列舉類型可能不小心使用的情況。
程式碼分析名稱: ALMOST_BITWISE_ENUM
範例
下列範例程式碼會導致警告 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?
}
若要修正警告,請將列舉常數初始化為正確的值,或在作業中使用正確的列舉類型。
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.
}