heise+ | Softwareentwicklung: Aktuelle Features in C++26 im Test

vor 2 Tage 3
  1. Softwareentwicklung: Aktuelle Features in C++26 im Test
    • Der Grund für =delete
  2. Attribute für strukturierte Bindungen
  3. Gute Namen wichtig beim Coden
  4. Ein Vektor ohne dynamischen Speicher
  5. Ein Schutzschild für die Standard Template Library
  6. Reflexion zur Kompilierzeit
Artikel in iX 4/2026 lesen

C++26 steht vor der Tür: Ende März 2026 findet das finale Komiteetreffen in London statt. Hier kann es noch zu letzten Anpassungen kommen. Der Artikel stellt die wichtigsten Neuerungen vor, die C++26 bringt. Neue kleinere Sprachfeatures machen den Anfang, gefolgt von Neuerungen im Bereich constexpr. Sie knüpfen an Änderungen an, die vorwiegend in Embedded Systems nützlich sind. Im Blickpunkt stehen auch die Modifikationen bei den Templates und das vermutlich größte und einflussreichste neue Feature in C++26: die Reflexion zur Kompilierzeit (Static Reflection).

Mit dem Makro assert haben sowohl C als auch C++ ein mächtiges Werkzeug, um Invarianten zur Laufzeit zu testen und im Fehlerfall das Programm direkt zu beenden. Der Vorteil von assert liegt in seiner Eigenschaft, ein Makro zu sein: Es lässt sich beispielsweise im Releasemodus abschalten. Dadurch werden auch die Parameter nicht ausgewertet. Eine Auswertung der Parameter ist vor allem in C++ problematisch, da der Compiler unter anderem Konstruktoren und Destruktoren für Parameter aufrufen muss. Eine Ausnahme bildet die Compileroptimierung.

  • Das ISO-C++-Komitee hat C++ verbessert und mit neuen Features ausgestattet.
  • Eine wesentliche Neuerung ist Static Reflection, die Code zur Kompilierzeit analysiert.
  • Um die Lesbarkeit von Code zu verbessern und für bessere Fehlermeldungen hat das C++-Komitee das Schlüsselwort delete erweitert. Es lässt sich nun ein Grund beispielsweise für das Löschen einer Funktion eingeben.
  • Contracts erlauben es, Bedingungen direkt an Funktionen zu formulieren, die der Compiler prüfen kann. Die Aufnahme in C++26 ist geplant, aber noch nicht beschlossen.

Doch bei assert gibt es auch Nachteile. Das folgende Listing illustriert die Schwäche. Für eine Struktur Point prüft der Code, dass das Datenfeld x den Wert 2 enthält. Diese Prüfung schützt zum Beispiel vor einem Refaktorieren von Point, das die beiden Datenfelder vertauscht.

Das war die Leseprobe unseres heise-Plus-Artikels "Softwareentwicklung: Aktuelle Features in C++26 im Test". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.

Gesamten Artikel lesen