如果你为枚举类static_cast无效值会发生什么?

如果你为枚举类static_cast无效值会发生什么?

考虑一下这个C ++ 11代码:

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;}

标准是否保证会触发默认值?如果没有,在这里检查错误的正确,最有效,最优雅的方法是什么?

编辑:

作为奖励,该标准是否对此有任何保证,但是用简单的枚举?


慕的地10843
浏览 1220回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP