Als 2011 die Standardisierungsorganisation ISO/IEC mit C++11 die erste grundlegende Überarbeitung der Programmiersprache C++ seit 1998 veröffentlichte, zogen viele Neuerungen in die Programmiersprache und seine Standard-Bibliothek ein.
Der Umfang der Spezifikation wuchs um rund 75 Prozent an. Ab diesem Zeitpunkt wurde ein Entwicklungszyklus im Vier-Jahres-Takt vereinbart, der dazu führte, dass in diesem Rhythmus neue Standards in C++ einfließen sollten. Das Ergebnis der damit einhergehenden Erweiterungen des C++11-Standards führten zu C++14 und C++17. Eine Reihe geplanter Features sind bereits in den bestehenden Standards enthalten, jedoch als „experimentell“ gekennzeichnet.
In Fachkreisen wird seit längerer Zeit nicht mehr zwischen den einzelnen „offiziellen“ Standards unterschieden, die seit C++98 hinzugekommenen Erweiterungen werden unter dem Namen „Modernes C++“ zusammengefasst.
Umfangreiche Erweiterungen mit dem C++20 Standard
Mitte Juli 2017 traf sich das 120-köpfige ISO-C++-Komitee und diskutierte sechs Tage lang über die Zukunft der Programmiersprache. Noch auf dem Winter-Treffen im März 2017 konnte das Komitee den Sprachstandard C++17 technisch abschließen. Auf dem Sommer-Meeting wurden dann bereits erste konkrete Pläne für C++20 beschlossen.
Bekannt ist unter anderem, dass der geplante C++20 Standard die Sprache C++ gegenüber dem wohlbekannten C++98 auf den zweieinhalb- bis dreifachen Umfang erweitern wird. Über alle Standardisierungsschritte hinweg zusammengefasst sind dies einige der herausragenden Features im Bereich der Sprachsyntax:
C++-Funktions-Literale (Lambdas)
C++-Rvalue-Referenzen
Bereichsbasierte Schleifen
Multithreading
Weitere Vereinfachungen gibt es im Bereich der C++-Meta-Programmierung, welche vor allem die Erstellung universell wiederverwendbarer und zugleich zur Compilezeit optimierter Software-Komponenten erlaubt.
Im Bereich der Standard-Bibliothek kamen neben vielen nützlichen „Kleinigkeiten“ auch neue Container-Klassen hinzu, außerdem die Chrono-Bibliothek (Zeitpunkte und Zeitspannen) sowie standard „Type-Traits“ zur Unterstützung der Meta-Programmierung.
Das Highlight von C++20 werden vermutlich die C++ Concepts sein, eine Variante der in der objektorientieren Programmierung wohlbekannten C++ Interfaces. Sie entfaltet jedoch nicht zur Laufzeit, sondern zur Compilezeit ihre Wirkung und erlaubt damit in weitaus höherem Maße C++ Code-Optimierungen. Zudem werden Möglichkeiten zur (voll-) automatischen C++ Type-Deduction im Stile der funktionalen Programmierung vorbereitet.
Training für Modernes C++ und weitere Kurse
Um Ihre C++-Kenntnisse auf den neuesten Stand zu bringen, bietet Microconsult das eigens dafür entwickelte Training „Modernes C++“. Außerdem bietet das Unternehmen weitere Kurse rund um die Programmiersprache C++ und verschiedene Software- und Management-Themen.