枚举(类)允许的类型是什么?

use*_*401 4 c++ c++11 c++14

在声明枚举(类)时,我可以指定枚举将使用的基础类型,例如

enum class MyEnum : baseType { FIRST, SECOND };
Run Code Online (Sandbox Code Playgroud)

什么可以baseType?通常的选择是uint32_t或类似的,但也可能是float?甚至是我自己的班级?

Tar*_*ama 8

N4140 [dcl.enum]/2:[...] enum-base的type-specifier-seq应命名为整数类型; 任何cv资格都被忽略了.[...]

因此,baseType可以是任何整数类型,即bool,char,char16_t,char32_t,wchar_t和符号和无符号整数类型.