enum foo : const unsigned int
{
F,
S,
T
};
void func()
{
foo p;
p = F;
}
Выше компилируется, поэтому базовый тип не является константным типом?
Ответ 1
Спецификатор const игнорируется в спецификации enum-base; который просто ожидает, что интегральный тип будет использоваться в качестве базового типа перечислимого типа, указание const (или volatile) не имеет особого смысла.
(акцент мой)
двоеточие (:), за которым следует спецификатор типа-seq, который называет целочисленный тип (если он квалифицирован cv, квалификации игнорируются), который будет служить фиксированным базовым типом для этого типа перечисления