警告 C26828
不同的枚举类型具有重叠的值。 你想在这里使用另一个枚举常量吗?
备注
大多数情况下,单一枚举类型描述了可用于选项的所有位标志。 如果你在同一个按位表达式中使用两个具有重叠值的不同枚举类型,那么这些枚举类型很可能不是为一起使用而设计的。
代码分析名称:MIXING_OVERLAPPING_ENUMS
示例
以下示例代码会导致警告 C26828:
enum BitWiseA
{
A = 1,
B = 2,
C = 4
};
enum class BitWiseB
{
AA = 1,
BB = 2,
CC = 4,
All = 7
};
int overlappingBitwiseEnums(BitWiseA a)
{
return (int)a|(int)BitWiseB::AA; // Warning C26828: Different enum types have overlapping values. Did you want to use another enum constant here?
}
要修复警告,请确保设计用于一起使用的枚举类型没有重叠值。 或者,确保所有相关选项都在一个枚举类型中。
enum BitWiseA
{
A = 1,
B = 2,
C = 4
};
int overlappingBitwiseEnums(BitWiseA a)
{
return (int)a|(int)BitWiseA::A; // No warning.
}
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈