Какова функция спецификатора const в типах enum? - программирование
Подтвердить что ты не робот

Какова функция спецификатора const в типах enum?

enum foo : const unsigned int
{
    F,
    S,
    T
};

void func()
{
    foo p;
    p = F;
}

Выше компилируется, поэтому базовый тип не является константным типом?

4b9b3361

Ответ 1

Спецификатор const игнорируется в спецификации enum-base; который просто ожидает, что интегральный тип будет использоваться в качестве базового типа перечислимого типа, указание const (или volatile) не имеет особого смысла.

(акцент мой)

двоеточие (:), за которым следует спецификатор типа-seq, который называет целочисленный тип (если он квалифицирован cv, квалификации игнорируются), который будет служить фиксированным базовым типом для этого типа перечисления

Из стандарта [dcl.enum]/2:

(акцент мой)

Тип-спецификатор-seq базы перечислений должен называть целочисленный тип; любая квалификация cv игнорируется.