C++-Ausdrücke (konstant)
C++ erfordert konstante Ausdrücke – Ausdrücke, die als Konstante ausgewertet werden – für Deklarationen von:
Arraygrenzen
Selektoren in case-Anweisungen
Bitfeldlängenangabe
Enumerationsinitialisierer
Die einzigen Operanden, die in konstanten Ausdrücken zulässig sind, lauten:
Literale
Enumerationskonstanten
Werte, die als Konstanten deklariert sind und mit konstanten Ausdrücken initialisiert werden.
sizeof-Ausdrücke
Konstanten, die keine Ganzzahlen sind, müssen (entweder explizit oder implizit) in ganzzahlige Typen konvertiert werden, um in einem konstanten Ausdruck zulässig zu sein. Daher ist der folgende Code gültig:
const double Size = 11.0;
char chArray[(int)Size];
Explizite Konvertierungen in ganzzahlige Typen sind in konstanten Ausdrücken zulässig; alle anderen Typen und abgeleiteten Typen sind nicht zulässig, sofern sie nicht als Operanden für den sizeof-Operator verwendet werden.
Der Kommaoperator sowie Zuweisungsoperatoren können nicht in konstanten Ausdrücken verwendet werden.