c ++枚举类整数不适用于数组下标

Obj*_*ive 8 c++ c++11

我有以下枚举类:

enum class EnumClass : int
{
    A = 0, B
};
Run Code Online (Sandbox Code Playgroud)

现在我想用枚举类型下标到数组:

MyObject arr[2];
.
.
.
MyObject a = arr[EnumClass::A]
MyObject b = arr[EnumClass::B]
Run Code Online (Sandbox Code Playgroud)

不幸的是我收到以下错误消息:

array subscript is not an integer
Run Code Online (Sandbox Code Playgroud)

由于枚举类是强类型的,我希望这可以工作.

Pra*_*ian 16

由于枚举类是强类型的,我希望这可以工作

相反,这正是它无法运作的原因.Scoped枚举不会隐式转换为基础类型.请static_cast改用.

MyObject a = arr[static_cast<int>(EnumClass::A)];
Run Code Online (Sandbox Code Playgroud)