【发布时间】:2017-06-30 12:59:34
【问题描述】:
我终于convinced我的同事使用enum class而不是旧的enum。
但是,当将int 与枚举类值进行比较时,现在需要进行强制转换。至少 IntelliSense 是这么说的:
由于这种不必要的强制转换(因为基础类型是 int),她现在想继续使用旧的枚举...
请帮助我解决讨论中的论点。也许有一种技术方法可以避免演员表?
【问题讨论】:
-
显式转换是件好事。
int不是Colors。如果你想避免演员,首先不要有int。 -
请发布实际代码,而不是代码图片。 TIA。
-
另请注意,IntelliSense 不是编译器。不要依赖它的消息,而要依赖你正在使用的编译器的错误。有时是错的。
-
某处 SO 我看到
operator+的重载从我认为合理的枚举类返回一个 int。 -
使用
enum class的重点是在比较期间停止隐式转换。如果你想颠覆它,那么你还不如回到使用enum。