最佳答案
考虑下面的 C + + 代码:
enum class Color : char { red = 0x1, yellow = 0x2 }
// ...
char *data = ReadFile();
Color color = static_cast<Color>(data[0]);
假设数据[0]实际上是100。根据标准,颜色设置为什么? 特别是,如果我以后这样做
switch (color) {
// ... red and yellow cases omitted
default:
// handle error
break;
}
是否标准保证违约将被触发?如果没有,那么在这里检查错误的最合适、最有效、最优雅的方法是什么?对于这个标准,除了使用普通枚举之外,是否做出了任何保证?