<分区>
或者另一种表达方式是:编译器是否可以假设 enum
的实例只能保存它被声明为保存的值并根据该假设进行优化?
enum MyType { A = 1, B = 2 };
const MyType C = static_cast<MyType>(3);
void fun(MyType m) {
switch (m) {
case A:
// ...
break;
case B:
// ...
break;
case C:
// can this be optimized away?
}
}