【问题标题】:Can't initialize an enum with a value from its underlying type无法使用其基础类型中的值初始化枚举
【发布时间】:2020-07-06 01:21:53
【问题描述】:
enum class Color { red, blue, green };
Color x = Color{5}; 

第二个语句给了我错误(main.cpp:20:23: error: cannot convert ‘int’ to ‘Color’ in initialization)。我正在阅读 c++ 书,它说可以在第二条语句中初始化方式。我很困惑是否可以使用 int 来初始化枚举类型(此处为颜色)。

【问题讨论】:

标签: c++ c++11 enums


【解决方案1】:

使用不强制转换的整数初始化范围枚举是 C++17 的一项功能,请参阅 cppreference。您必须在编译步骤中启用 C++17。

【讨论】:

    猜你喜欢
    • 2019-08-29
    • 2019-06-15
    • 1970-01-01
    • 2011-10-21
    • 2011-04-18
    • 2016-11-30
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    相关资源
    最近更新 更多