c++ - ¿Cuál es la función del especificador const en los tipos de enumeración?
c++11 enums (1)
El calificador
const
se ignora en la especificación de
enum-base
;
que solo espera que se use un tipo integral como el tipo subyacente del tipo de enumeración, especificando
const
(o
volatile
) no tiene mucho sentido.
(énfasis mío)
dos puntos (:), seguido de un tipo-especificador-seq que nombra un tipo integral ( si está calificado por cv, se ignoran las calificaciones ) que servirá como el tipo subyacente fijo para este tipo de enumeración
De la norma, [dcl.enum]/2 :
(énfasis mío)
El type-specifier-seq de una enum-base debe nombrar un tipo integral; Cualquier cv-calificación se ignora .
enum foo : const unsigned int
{
F,
S,
T
};
void func()
{
foo p;
p = F;
}
¿Lo anterior compila así que el tipo subyacente no es un tipo const?