【发布时间】:2011-07-06 06:43:26
【问题描述】:
使用以下 C++ 定义:
enum EnumA {
EA_Element = 1
};
enum EnumB {
EB_Element = 10
};
以下代码无法编译,这只是有意义的:
EnumA variable;
variable = EB_Element; // won't compile
但以下代码确实可以编译:
EnumA variable = EA_Element;
if( variable == EB_Element ) { //will compile
}
虽然它没有任何意义 - 比较不同的枚举并且这样的代码可能是错误的。
为什么这些看似相同的情况在 C++ 中的处理方式不同?
【问题讨论】:
-
不应该编译的情况是:
variable = EB_Element;?
标签: c++ enums types type-safety