c++ - 有没有一种简单的方法可以将枚举类转换为字符串(C++)?

标签 c++ enum-class

虽然有解决方案很容易 convert an enum to a string ,我想要使用 enum class 的额外安全好处。有没有一种简单的方法可以将 enum class 转换为字符串?

(给出的解决方案不起作用,因为枚举类无法索引数组)。

最佳答案

您不能隐式转换为基础类型,但可以显式转换。

enum class colours : int { red, green, blue };
const char *colour_names[] = { "red", "green", "blue" };
colours mycolour = colours::red;
cout << "the colour is" << colour_names[static_cast<int>(mycolour)];

这是否太冗长取决于您。

关于c++ - 有没有一种简单的方法可以将枚举类转换为字符串(C++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939500/

相关文章:

c++ - 对基于范围的for循环的误解?

c++ - 强类型 C++0x 枚举比较

具有类成员和 constexpr 链接时优化的 C++11 枚举

java - 为什么构造函数未定义?

c++ - 内核崩溃 - 无法处理 000002c0 处的内核 NULL 指针取消引用

c++ - 在 C++ 中验证日期格式

c++ - 为什么静态成员变量不能很好地与三元运算符一起使用?

c++ - 将异常处理为 bison 中的解析错误

c++ - 为什么底层类型为 int8_t 的 static_cast 枚举类会得到意外的值?

C++ |如何格式化和导出由二维矩阵组成的简单二进制文件