C ++ 20 erhält die endgültige technische Genehmigung
Nachdem C ++ 20 am 4. September die endgültige technische Zulassung von ISO erhalten hat, wird erwartet, dass es Ende dieses Jahres offiziell veröffentlicht wird und neue Funktionen wie Module und Coroutinen einführt.
C ++ wurde 1979 für die Systemprogrammierung entwickelt und bleibt eine wichtige Sprache. C ++ wurde sogar als die am schnellsten wachsende Sprache im Tiobe-Index vom September 2020 eingestuft, wo es hinter C, Java und Python den vierten Platz belegt. Tiobe nennt die C ++ 20-Spezifikation als einen der Faktoren, die der Sprache einen Schub verleihen.
Zu den neuen Funktionen in C ++ 20 gehören:
- Module, mit denen Programmierer modulare Komponenten verwenden können.
- Konzepte, mit denen Vorlagenanforderungen festgelegt und allgemeine Programmierung unterstützt werden. Konzepte versprechen eine Verbesserung der Codequalität.
- Eine Synchronisationsbibliothek zur besseren Unterstützung einer fein abgestimmten Hardwaresteuerung.
- Verbesserungen bei der Berechnung zur Kompilierungszeit.
- Coroutinen, die Unterprogramme zur Verwendung in nicht präventivem Multitasking verallgemeinern. Eine standardisierte Unterstützung für Coroutinen in der Standardbibliothek fehlt jedoch noch. Diese Unterstützung gilt für C ++ 23.
- Bereiche, die Komponenten für den Umgang mit Elementbereichen bereitstellen.
- Feature-Test-Makros, eine Reihe von Makros, die Sprach- und Bibliotheksfunktionen aus C ++ 11 oder höher entsprechen.
- Vorberechnete Hashwerte bei der Suche.
- Erweiterungsanweisungen, um die Wiederholung einer Anweisung zur Kompilierungszeit für jedes Element eines Tupels, Arrays, einer Klasse, eines Parameterpakets oder eines Bereichs zu ermöglichen.
- Monadische Operationen für
std::optionalcode
. - Implizite Erstellung von Objekten für die Manipulation auf niedriger Ebene.
- Verbesserte kontextsensitive Erkennung von
import
undmodule
Unterstützung von Nicht-Compiler-Tools bei der Ermittlung von Build-Abhängigkeiten. - Neue klingelte Algorithmen.
Eine in C ++ 20 erwartete Vertragsfunktion zum Festlegen von Vorbedingungen, Nachbedingungen und Zusicherungen wurde entfernt. Verträge werden jetzt als C ++ 23-Element markiert, obwohl sie möglicherweise auch nicht in diese Version aufgenommen werden.