Menü

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.

Lesezeit: 10 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 7 Beiträge
Von

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.

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

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - jederzeit kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+