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

One*_*rld 0 c++ enums casting c++11

我终于说服我的同事使用enum class而不是旧的enum.

但是,当与int枚举类值进行比较时,现在需要进行强制转换。至少智能感知是这样说的:

在此处输入图片说明

由于那个不必要的强制转换(因为基础类型是 int),她现在想继续使用旧的枚举......

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

Tob*_*ght 5

您要么希望您的枚举值默认可与整数相互转换,要么不这样做。

enum如果您的值代表类似数字的事物,请选择普通。

选择enum class您的值是否与其整数表示无关。

如果您正在使用enum class,那么您不需要与int值进行比较;如果你这样做了,那么显式转换会引起对可疑代码的注意;这是好事。