Programmiersprachen: Erste Pläne für C++20 veröffentlicht
Nachdem das ISO-C++-Komitee den Sprachstandard C++17 auf dem Winter-Treffen technisch abgeschlossen hatte, wurden nun im Sommer-Meeting erste konkrete Pläne für C++20 beschlossen. Unter anderem sind Concepts Bestandteil des Drafts.
Mitte Juli traf sich das ISO-C++-Komitee in Toronto. Insgesamt 120 Teilnehmer diskutierten sechs Tage lang die Zukunft der Programmiersprache. Der für die Einberufung des Komitees zuständige C++-Experte Herb Sutter hat in seinem Blog nun erste Pläne für C++20 veröffentlicht, nachdem das Komitee auf dem Winter-Treffen im März den Sprachstandard für C++17 technisch abgeschlossen hatte.
Das erste große Sprachfeature kommt durch die Aufnahme einer separaten Spezifikation hinzu: Die Concepts Technical Specification (TS) ist nun Bestandteil des C++20 Draft. Concepts sind eine Erweiterung der Templates und existieren seit 2015 als separate TS. C++20 wird die Spezifikation nahezu vollständig in den Hauptstandard übernehmen, die beiden offenen Punkte "introducer syntax" und "terse/natural syntax" bleiben zunächst außen vor, da es dazu noch keine vollständige Einigung gab. Über die Aufnahme der Concurrency TS gab es dagegen auf dem Meeting noch keinen Entschluss.
(Bild: Standard C++ Foundation)
Designated Initializers und mehr
Außerdem halten Designated Initializers, die in C bereits seit C99 Bestandteil des Standards sind, Einzug in C++. Damit lassen sich unter anderem Teile eines struct definieren:
struct A { int x; int y; int z; };
A b{.x = 1, .z = 2};
Vor allem der besseren Lesbarkeit des Codes dient, dass in C++20 [=, this] als Lambda Capture erlaubt ist. Außerdem dürfen generische Lambdas jetzt eine Template-Parameterliste enthalten.
Schließlich hat das Komitee drei Spezifikationen fertiggestellt und zur endgültigen Veröffentlichung herausgegeben: Coroutines TS, Networking TS und Ranges TS. Die Modules TS hat es derweil zur Abstimmung und für Kommentare freigegeben (PDTS Ballot).
Weitere Ergebnisse des Treffens lassen sich dem Blogbeitrag entnehmen.
[Update 17.7. 13:15]:
Rainer Grimm, der für heise Developer den Blog "Modernes C++" schreibt, hat in seinem vorherigen Blog bereits vier Artikel zum Thema Concepts veröffentlicht.
Siehe dazu auf heise Developer:
(rme)