Revolution: Das ist neu in C++20
![Die Neuerungen in C++20](https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/2/7/1/7/4/8/7/c_20-2c54f21d78399955.jpeg)
Der Entwurf von C++20 ist abgeschlossen. Contracts, Concepts, die Ranges-Bibliothek, Module und Coroutinen definieren neu, wie man mit C++ programmiert.
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.](https://heise.cloudimg.io/width/696/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/7/1/7/4/8/7/Pfeil-2e0a70e11e04b102.png)
Die fünf vorgestellten Features finden sich im C++20-Entwurf. Allerdings wird es wahrscheinlich noch Anpassungen an der konkreten Syntax geben.
URL dieses Artikels:
https://www.heise.de/-4476093
Copyright © 2019 Heise Medien