ISO-C++-Komitee bereitet C++26 vor: Neue Features und mögliche Einführungen

Das ISO-C++-Komitee hat sich kürzlich getroffen, um den nächsten C++-Standard C++26 vorzubereiten, obwohl der offizielle Start von C++23 bereits geplant ist. Bei dem Treffen wurden bereits 40 Vorschläge angenommen, darunter die Verwendung des Unterstrichs _ als namenlosen Platzhalter für C++26. Das Komitee hat auch vier weitere Änderungen in der Sprache und 19 in der Standard Library für C++26 aufgenommen.

Laut dem aktuellen Trip-Report von Herb Sutter sind Contracts und Reflexion noch nicht endgültig für C++26 beschlossen, befinden sich aber auf einem guten Weg. Diese beiden Neuerungen sind bedeutend für die Sprache. Ursprünglich waren Contracts bereits für C++20 geplant, wurden aber aufgrund von Meinungsverschiedenheiten beim Design nicht umgesetzt. Das Design-by-Contract-Prinzip stammt aus der Programmiersprache Eiffel und zielt darauf ab, eine nahtlose Interaktion zwischen Softwarekomponenten sicherzustellen. Es legt fest, dass der aufrufende Kontext einen Vertrag (Contract) mit einer Funktion oder Methode abschließt, der Vor- und Nachbedingungen enthält. Die Einhaltung der Vorbedingungen liegt in der Verantwortung des Aufrufers, während die aufgerufene Funktion sicherstellen muss, dass die Nachbedingungen gelten, wenn sie beendet wird. Zusätzlich gibt es Invarianten, die während der Ausführung der Funktion gelten müssen.

Auf dem Treffen hat das Komitee eine neue Syntax für Contracts vereinbart, die auf doppelte Klammern für die Bedingungen verzichtet. Außerdem wurde das Schlüsselwort assert durch contract_assert ersetzt, um Inkompatibilitäten zu vermeiden. Ein Beispiel für die neue Syntax wurde in einem Blogbeitrag von Herb Sutter präsentiert.

Ein weiteres wichtiges Konzept, das C++ bisher nicht unterstützt, ist die Reflexion. Mit C++26 wird sich das ändern. Durch die Verwendung von Reflexion kann ein Programm zur Compile-Zeit auf seine eigene Struktur zugreifen und Informationen über Klassen und Methoden abrufen sowie diese sogar verändern. Das ISO-C++-Komitee hat sich einstimmig für das Proposal Reflection for C++26 entschieden, das auf zwei früheren Vorschlägen basiert und die geplante Syntax anhand eines Beispiels zeigt.

Weitere Details zu den geplanten Neuerungen für C++26 sowie den bereits akzeptierten Änderungen können dem Blogbeitrag von Herb Sutter entnommen werden. C++23 wird voraussichtlich im Dezember offiziell gestartet, nachdem der Inhalt bereits seit Mitte des Jahres fertig ist und nur noch auf die Freigabe nach der Abstimmungsphase wartet.

Schlagwörter: C26 + Contracts + Reflexion

Wie bewerten Sie den Schreibstil des Artikels?
1 Star2 Stars3 Stars4 Stars5 Stars
  • 16. November 2023