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 importund moduleUnterstü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.