Revolution: Das ist neu in C++20

Der Entwurf von C++20 ist abgeschlossen. Contracts, Concepts, die Ranges-Bibliothek, Module und Coroutinen definieren neu, wie man mit C++ programmiert.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Die Neuerungen in C++20
Lesezeit: 21 Min.
Von
  • Rainer Grimm
Inhaltsverzeichnis

Der aktuelle C++17-Standard konzentrierte sich vor allem auf zwei Features: die Dateisystembibliothek und die parallelisier- und vektorisierbaren Algorithmen der Standard Template Library.

Der kommende Standard C++20 dagegen bildet die nächste Evolutionsstufe der Sprache. Dabei geht es um fünf neue Features:

  • Contracts definieren Interfaces fĂĽr Funktionen. Diese Interfaces können aus Vorbedingungen fĂĽr die Funktionsargumente, Nachbedingungen fĂĽr das Ergebnis einer Funktion und Zusicherungen während der AusfĂĽhrung der Funktion bestehen.
  • Concepts sind eine Erweiterung von Templates, mit denen Entwickler semantische Kategorien fĂĽr die Menge der zulässigen Datentypen festlegen. Mit ihrer Hilfe lassen sich Templates deutlich einfacher und ausdrucksreicher nutzen.
  • Die Ranges-Bibliothek erlaubt es, die Algorithmen der Standard Template Library direkt auf Container anzuwenden, sie mit dem aus der Unix-Shell bekannten Pipe-Operator zu verknĂĽpfen und auf unendlichen Datenströmen zu definieren.
  • Module sind eine Alternative zu Header-Dateien und versprechen viele Verbesserungen. Dazu gehört, die Trennung von Header- und Sourcecodedateien aufzulösen, Präprozessoranweisungen zu eliminieren, das Kompilieren zu beschleunigen und einfacher Pakete schnĂĽren zu können.
  • Mit Coroutinen öffnet sich C++20 fĂĽr die asynchrone Programmierung. Damit werden sich in der neuen Version kooperatives Multitasking, unendliche Datenströme, Event-Schleifen und Pipelines elegant umsetzen lassen.

Nachdem C++14 und C++17 nur vergleichsweise kleine Ă„nderungen an der Sprache brachten, steht C++20 mit vielen grundlegenden Neuerungen in der Tradition der "groĂźen" Standards C++98 und C++11.

Die fĂĽnf vorgestellten Features finden sich im C++20-Entwurf. Allerdings wird es wahrscheinlich noch Anpassungen an der konkreten Syntax geben.

Das war die Leseprobe unseres heise-Plus-Artikels "Revolution: Das ist neu in C++20". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.

Immer mehr Wissen. Das digitale Abo fĂĽr IT und Technik.