通常,您可以使用以下语法为类定义强制转换:
class Test {
public:
explicit operator bool() { return false; }
};
对于 enum 类
,有没有办法做到这一点或类似的事情?
最佳答案
不,不是。
实际上,enum class
根本就不是类。 class
关键字仅用于因为突然将无范围的 enum
更改为有范围的 enum
将意味着重新处理 all 枚举代码。所以委员会决定为了区分新式和旧式枚举,新的将用 class
标记,因为它已经是一个关键字,所以没有 enum
可以有在 C++ 中被命名为 class
。他们本可以再选一个,反正也没有意义。
然而,尽管有 class
关键字,它们仍然是常规枚举,因为括号内只允许使用枚举数(以及可能分配给它们的值)。
关于c++ - 是否可以手动定义枚举类的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753543/