Was ist der Unterschied zwischen constexpr und const in C++?
Hallo zusammen! Ich habe angefangen, C++11 zu lernen und bin auf das neue Schlüsselwort `constexpr` gestoßen. Früher habe ich immer `const` verwendet, um unveränderliche Variablen zu deklarieren. Aber jetzt gibt es auch noch `constexpr`, und ich verstehe nicht ganz, wann ich was verwenden soll.
Zum Beispiel schreibe ich solchen Code:
```cpp
const int size = 5;
int arr[size]; // Das funktioniert
```
Aber wenn ich schreibe:
```cpp
int get_size() { return 5; }
const int size = get_size();
int arr[size]; // Compiler-Fehler in alten Standards!
```
Ich verstehe, dass `const` nur verbietet, die Variable nach der Initialisierung zu ändern, aber nicht garantiert, dass der Wert zur Compile-Zeit bekannt ist. Gleichzeitig sehe ich Beispiele mit `constexpr`:
```cpp
constexpr int square(int x) { return x * x; }
constexpr int val = square(5); // Ok, wird zur Compile-Zeit berechnet
```
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen