将enum类与int进行比较时避免强制转换

时间:2017-06-30 12:59:34

标签: c++ c++11 enums casting

我终于convinced我的同事使用enum class而不是旧的enum

但是,在将int与枚举类值进行比较时,现在需要进行强制转换。至少IntelliSense如此说:

enter image description here

由于那个不必要的演员表(因为基础类型是int),她现在想要留在旧的枚举......

请在讨论中帮助我解决问题。也许有一种技术方法可以避免演员阵容?

1 个答案:

答案 0 :(得分:2)

您希望您的枚举值可以默认转换为整数或从整数转换,或者您不想。

如果您的值代表类似数字的内容,请选择普通enum

如果您的值未与其整数表示相关联,请选择enum class

如果您正在使用enum class,那么您不应该与int值进行比较;如果你这样做,那么显式演员会引起对可疑代码的注意;这是一件好事。