Der Entwurf zur Spezifizierung von C++20 (ISO/IEC 14882:2020) als nächster grosser Standard der Programmiersprache C++
ist genehmigt worden. Dieser bringt bedeutende Neuerungen für Entwickler mit. Wie C++11, der letzte grosse Standard der Sprache, soll auch C++20 die Art und Weise ändern, wie Entwickler in modernem C++ programmieren. Die Kernneuerungen der neuen Version heissen: Ranges, Coroutinen, Concepts und Module.
C++20 ergänzt die Sprachkonzepte auch um den Raumschiff-Operator (<=>) für Drei-Wege-Vergleiche, Coroutinen, designierte Initialisierer sowie neue Standardattribute. Ebenfalls neu: Bereiche, Funktionstestmakros und Bitoperationen. Die vollständigen Änderungen sind auf
cppreference.com,
open-std.org und
Wikipedia zu finden.
Concepts sind eine Erweiterung der Templates von C++, mit denen sich semantische Kategorien für die Menge der zulässigen Datentypen definieren lassen. Dank Concepts soll das Anwenden und Definieren von Templates deutlich einfacher und ausdrucksreicher werden. Die Ranges-Bibliothek erlaubt es derweil, Algorithmen der Standard Template Library direkt auf den Containern der STL anzuwenden, diese mit dem aus der Unix-Shell bekannten Pipe-Operator zu verknüpfen und auf unendlichen Datenströmen zu definieren. Mit Couroutinen unterstützt C++20 zudem asynchrone Programmierung. Damit sollen sich kooperatives Multitasking, unendliche Datenströme, Eventschleifen oder auch Pipelines umsetzen lassen.
(swe)