Neuer Standard C++23: Wichtige Ä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

Neuer Standard C++23 veröffentlicht: Was sich geändert hat und wie es die Entwicklung beeinflussen wird



Das internationale Komitee für die Standardisierung von C++ (ISO/IEC JTC1/SC22/WG21) hat offiziell die neue Version der Sprache — C++23 — bestätigt. Diese Version ist nicht so grundlegend wie C++11 oder C++20, enthält jedoch viele lang erwartete Verbesserungen, die den Code sicherer, ausdrucksstärker und leistungsfähiger machen. Lassen Sie uns die wichtigsten Neuerungen analysieren, die jeder C++-Entwickler kennen sollte.



Wichtigste Änderungen in C++23



  • Deducing this (P0847R7) — die am meisten erwartete Neuerung. Jetzt kann das Objekt, auf dem eine Methode aufgerufen wird, explizit angegeben werden, was das Überladen für lvalue/rvalue, konstante und nicht-konstante Versionen vereinfacht und Code-Duplizierung in CRTP-Vorlagen vermeidet.
  • std::expected (P0323R12) — ein Typ zur Fehlerbehandlung ohne Ausnahmen, eine Alternative zu std::optional und Ausnahmen. Ermöglicht die Rückgabe entweder eines Werts oder eines Fehlers, was für Systeme mit strengen Leistungsanforderungen entscheidend ist.
  • std-Module (P2465R3) — die Standardbibliothek wird jetzt über Module exportiert, was die Kompilierung beschleunigt und die Code-Isolierung verbessert. Beispielsweise ersetzt import std; Dutzende von #include.
  • Verbesserungen bei Coroutinen — der Typ std::generator für faule Sequenzen wurde hinzugefügt und viele Probleme mit der Leistung und Ergonomie von Coroutinen aus C++20 wurden behoben.
  • Multithreading — neue Mechanismen std::latch und std::barrier zur Thread-Synchronisation sowie ein verbessertes std::counting_semaphore.


Was bedeutet das für Entwickler?



C++23 bricht nicht die Abwärtskompatibilität, führt aber neue Praktiken ein. Beispielsweise vereinfacht deducing this das Schreiben von Bibliotheken, und std::expected wird nach und nach umständliche Rückgabecode-Prüfungen ersetzen. Viele Compiler (GCC 13+, Clang 16+, MSVC 2022 17.6+) unterstützen bereits einen Teil der Funktionen.



Für diejenigen, die mit hochbelasteten Systemen arbeiten, sind insbesondere Module (20-40% schnellere Builds) und die verbesserte Fehlerbehandlung ohne Ausnahmen wichtig. Wenn Sie C++20 verwenden, erfordert die Migration auf C++23 kein Umschreiben des Codes — es reicht aus, das neue Compiler-Flag zu aktivieren.



Wann ist mit vollständiger Unterstützung zu rechnen?



Die vollständige Unterstützung für C++23 wird in Compilern bis Ende 2024 erwartet. Vorläufig können einzelne Features mit den Flags -std=c++2b (GCC/Clang) oder /std:c++latest (MSVC) getestet werden. Wir empfehlen, mit std::expected und deducing this zu beginnen — sie sind in realen Projekten am nützlichsten.



Aktuelle Codebeispiele und ein Vergleich mit C++20 finden Sie in der Compiler-Dokumentation. C++23 ist ein evolutionärer Schritt, der die Sprache sicherer und benutzerfreundlicher macht, ohne die Leistung zu beeinträchtigen.

Empfohlene Bibliotheken