Expressões de constante C++
O C++ requer expressões constantes — expressões que são avaliadas como uma constante — para declarações de:
Limites de matriz
Seletores em instruções case
Especificação de comprimento do campo de bits
Inicializadores de enumeração
Os únicos operandos que são válidos em expressões constantes são:
Literais
Constantes de enumeração
Valores declarados como const que são inicializados com expressões constantes
expressões sizeof
As constantes não integral devem ser convertidas (explicitamente ou implicitamente) em tipos integrais para serem válidas em uma expressão constante. Portanto, o código a seguir é válido:
const double Size = 11.0;
char chArray[(int)Size];
As conversões explícitas em tipos integrais são válidas em expressões constantes; todos os outros tipos e tipos derivados são inválidos, exceto quando usados como operandos no operador sizeof.
O operador vírgula e os operadores de atribuição não podem ser usados em expressões constantes.