Modernes Programmieren mit C++20

C++ 20 bringt Modules, Coroutines, Concepts und Ranges. Sie ändern die Art, mit C++ zu programmieren.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Modernes Programmieren mit C++20
Lesezeit: 14 Min.
Von
  • Nicolai Josuttis
Inhaltsverzeichnis

Nach zwei kleineren C++-Releases (derzeit erscheint alle drei Jahre eine neue C++-Version) handelt es sich bei C++ 20 wieder um eine große, die ähnlich wie C++11 das Programmieren mit C++ nachhaltig verändern wird. Die großen Neuerungen sind Concepts, Ranges, Modules und Coroutines.

Die erste Neuerung betrifft generische Programmierung. Man kann nun auch außerhalb von Lambdas auto als Parameter verwenden:

void printColl(const auto& coll) {
for (const auto& elem : coll) {
std::cout << elem << '\n';
}
}

Diese Funktion ist im Prinzip ein Funktionstemplate für einen Parameter coll von beliebigem Typ. Konzepte erlauben es nun, Anforderungen und Einschränkungen an generische Datentypen zu formulieren. Dabei handelt es sich um eine mit einem Namen versehene Spezifikation der von einem Datentyp unterstützten Eigenschaften und Operationen. Damit kann man dokumentieren und sicherstellen, dass ein Template wie oben nur bestimmte Typen unterstützt.