警告 C26827
列挙型の初期化を忘れたか、別の型を使用するつもりでしたか?
解説
ビットごとの演算で使用されるほとんどの enum
型には、2 の累乗の値を持つメンバーが必要です。 この警告は、列挙定数に値が明示的に指定されていないケースを見つけようとします。 また、誤った列挙型が誤って使用された可能性がある場合も検出します。
コード分析名: 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.
}