Solo hay dos categorías de tipos en el lenguaje que no pueden tener calificación constante: tipos de referencia y tipos de función. Entonces, si const T
no puede ser un tipo const, esto significa que T
es un tipo de función o un tipo de referencia. Si puede descartar tipos de referencia, solo le quedan tipos de funciones.
Tenga en cuenta que un tipo de función que lleva un calificador cv, como por ejemplo int(int) const
, no es un tipo calificado const. Es un ejemplo de un "tipo de función abominable", cuyo único uso real es componer o descomponer los tipos de función de puntero a miembro. El tipo int(int) const
no se puede obtener agregando const-qualification encima de int(int)
. Más bien, se const
aplica al parámetro del objeto implícito.
!is_const
parte.