Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
C++ requires constant expressions — expressions that evaluate to a constant — for declarations of:
- Array bounds 
- Selectors in case statements 
- Bit-field length specification 
- Enumeration initializers 
The only operands that are legal in constant expressions are:
- Literals 
- Enumeration constants 
- Values declared as const that are initialized with constant expressions 
- sizeof expressions 
Nonintegral constants must be converted (either explicitly or implicitly) to integral types to be legal in a constant expression. Therefore, the following code is legal:
const double Size = 11.0;
char chArray[(int)Size];
Explicit conversions to integral types are legal in constant expressions; all other types and derived types are illegal except when used as operands to the sizeof operator.
The comma operator and assignment operators cannot be used in constant expressions.