Softwareentwicklung: Ressourcen sparen mit der C++-Funktion constexpr
Um ressourcenschonend zu programmieren, genügen schon kleine Veränderungen im Code. Der richtige Einsatz der Funktion constexpr nutzt RAM und ROM effizient.

- Andreas Fertig
Schon seit Version 11 kann C++ Dinge zur Kompilierzeit berechnen. Seitdem haben sich die damit verbundenen Möglichkeiten mit jeder neuen Version erweitert. War anfänglich nur eine rekursive Funktion mit einem return
und einer Kontrollanweisung möglich, liegt in C++23 der Unterschied fast nur noch darin, ob die Funktion dynamischen Speicher verwendet.
Seit C++20 ist dies zwar möglich, allerdings ist der angeforderte Speicher auch wieder zur Kompilierzeit freizugeben. Ziel einer constexpr
-Funktion ist es immer, zur Kompilierzeit einen Wert zu produzieren. In manchen Fällen bedeutet das, die Werte einer ganzen Klasse zur Kompilierzeit auszurechnen.
- Mit der C++-Funktion
constexpr
lässt sich die Ausführungseffizienz von Programmen steigern. constexpr
verlagert Berechnungen von der Lauf- zur Kompilierzeit, was zu schnellerer AusfĂĽhrung und reduziertem Speicherverbrauch fĂĽhrt.- Der Compiler kann die Ergebnisse der
constexpr
-Funktionen effizienter verwalten, da sie bereits zur Kompilierzeit bekannt sind. - Geschickter Code vermeidet unnötiges Kopieren von Daten.
Berechnungen zur Kompilierzeit kosten keine Laufzeit. Für vermutlich alle Software gilt, dass Benutzer sie öfter verwenden. Anwender profitieren häufig von schnelleren Boot- und Laufzeiten sowie längerer Batterielaufzeit. Allerdings sind die Möglichkeiten schwer zu demonstrieren. Ein Beispiel zeigt, wie sich der Einsatz von constexpr
positiv ausgewirkt.