GCC告诉我,你不能将不同的枚举类型值使用相同的名称,例如:
enum flag_one {
SUCCESS,
FAIL
}
enum flag_two {
SUCCESS,
FAIL
}
编译器不允许这样做。因此,作用域不在枚举定义内部吗?
解决方法是像这样进行:
enum flag_one {
FLAG_ONE_SUCCESS,
FLAG_ONE_FAIL
}
enum flag_two {
FLAG_TWO_SUCCESS,
FLAG_TWO_FAIL
}
我有点困惑,因为我喜欢使用枚举来返回整数代码,因为这样更易读/描述性,但我已经开始出现名称冲突。
::
作用域运算符那样。即使作用域按照你想的方式工作,你怎么可能解决歧义呢? - jamesdlin