Neues C++ 26: Überblick über die wichtigsten Änderungen und Verbesserungen der Sprache

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Der Standard C++ 26 ist erschienen: Was sich geändert hat und wie es die Entwicklung beeinflussen wird



Am 14. Februar 2025 hat das internationale Standardisierungskomitee für C++ die endgültige Version des neuen Standards verabschiedet – C++ 26. Dies ist nicht nur ein weiteres Update, sondern ein bedeutender Schritt nach vorne, der lang erwartete Funktionen in die Sprache bringt, die die Leistung, Sicherheit und Lesbarkeit des Codes verbessern. Entwickler, die die Entwicklung von Programmiersprachen verfolgen, haben bereits begonnen, die Neuerungen zu studieren, die das Schreiben komplexer Systeme vereinfachen sollen.



Die wichtigsten Änderungen in C++ 26 lassen sich in drei große Gruppen einteilen: Verbesserungen bei der Arbeit mit Speicher und Templates, neue syntaktische Konstrukte und die Erweiterung der Standardbibliothek. Betrachten wir jede davon genauer.



Verbesserungen bei Templates und statische Reflexion



Eine der bedeutendsten Neuerungen ist die Unterstützung von statischen Indizes (static index). Jetzt können Entwickler Informationen über Typen und die Code-Struktur zur Compile-Zeit abrufen, ohne Makros oder externe Code-Generatoren verwenden zu müssen. Dies vereinfacht das Schreiben von Bibliotheken für Serialisierung, Logging und Tests.



  • Statische Indizes (static_index): Ermöglichen den Zugriff auf Elemente von Tupeln und Varianten über einen zur Compile-Zeit bekannten Index ohne Laufzeitkosten.
  • Verbesserte Template-Deduktion: Der Compiler kann nun automatisch Typen für komplexere Template-Parameter bestimmen, einschließlich verschachtelter Templates.
  • Type Erasure ohne Leistungseinbußen: Es wurden neue Mechanismen zur Erstellung generischer Schnittstellen eingeführt, die keine virtuellen Aufrufe erfordern.


Neue syntaktische Möglichkeiten und Patterns



C++ 26 setzt den Kurs zur Vereinfachung der Syntax fort, wodurch der Code lesbarer und weniger fehleranfällig wird. In den Standard wurden lang erwartete Konstrukte aufgenommen, die zuvor nur über Drittanbieter-Bibliotheken oder Compiler-Erweiterungen verfügbar waren.



  • For-else und while-else Patterns: Das aus Python bekannte Konstrukt ist nun auch in C++ verfügbar. Der else-Block wird ausgeführt, wenn die Schleife ohne break-Anweisung beendet wurde.
  • Verbesserte Lambda-Ausdrücke: Lambdas können nun standardmäßig templatisiert sein und Variablen per Referenz mit der Möglichkeit der Verschiebung (move) erfassen.
  • Destruktoren für Strukturen (std::destructor): Es besteht nun die Möglichkeit, die Zerstörungsreihenfolge von Strukturfeldern explizit anzugeben, was für komplexe Ressourcenverwaltungssysteme entscheidend ist.


Updates der Standardbibliothek



Die Standardbibliothek von C++ 26 hat mehrere wichtige Erweiterungen erhalten, die sie im Vergleich zu modernen Sprachen wettbewerbsfähiger machen. Besonderes Augenmerk wurde auf die Arbeit mit Speicher und parallele Berechnungen gelegt.



  • std::mdspan (mehrdimensionale Views): Nicht-besitzende mehrdimensionale Array-Views wurden endgültig standardisiert. Dies vereinfacht die Arbeit mit Bildern, Matrizen und Tensoren.
  • std::out_ptr und std::inout_ptr: Neue Adapter für die sichere Übergabe von Smart Pointern an C-Funktionen, die rohe Pointer akzeptieren.
  • Erweiterte Algorithmen für Container: Parallele Versionen von Algorithmen für die Arbeit mit ranges wurden hinzugefügt, ebenso wie eine verbesserte Unterstützung für std::flat_map und std::flat_set.


Auswirkungen auf die Community und Support-Pläne



Der neue Standard wird bereits in Compilern implementiert. GCC 14, Clang 18

Empfohlene Bibliotheken