© Ron Dale/Shutterstock.com
Die Features der neuen C++-Version

C Plus Plus 20


Die Pflege von „in Ehren ergrauten“ Systemen ist seit jeher eine durchaus haarige Aufgabe. Die Arbeit an der neuen Ausgabe des C++-Standards erwies sich als durchaus kritisch. Bis zuletzt war nicht ganz klar, welche Erweiterungen wirklich in den neuen Sprachstandard kommen. Mittlerweile hat sich der Staub gelegt. Auch wenn ein Gutteil der Funktionen noch nicht in allen Compilern implementiert ist, ist nun ein guter Zeitpunkt, um einen Blick auf die Möglichkeiten und Grenzen der neuen Version von C++ zu werfen.

Ein alter Kalauer besagt, dass ein Industriestandard nur eine Einladung für Ingenieure ist, möglichst viele divergierende, den Standard nach Buchstaben aber erfüllende Systeme zu realisieren. Auch wenn die wilden Zeiten des „Embrace and Extend“ in der Welt der Informatik mittlerweile hinter uns liegen, gilt trotzdem, dass Compilerentwickler im Allgemeinen nicht die Schnellsten sind. Wer zum Zeitpunkt der Drucklegung einen Überblick über die Unterstützung der verschiedenen C++-20-Spezifikationen bzw. -Features in Compilern sucht, findet unter [1] eine detaillierte und gut gepflegte Tabelle.

Tenor der dortigen Ergebnisse ist, dass GCC in der aktuellen Version 10 mit Abstand am meisten von C++ 20 unterstützt. Leider ist die Entwicklung noch in einem so frühen Stadium, dass es keine fertig zu installierenden Pakete gibt. Das gilt explizit auch für auf Stack Overflow immer wieder zu findende Installationsanweisungen, die nach dem folgenden Schema ein neues PPA einpflegen:

tamhan@tamhan-VirtualBox:~$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test tamhan@tamhan-VirtualBox:~$ sudo apt-get install gcc-snapshot

Compilerupdates sind im Allgemeinen eine unproduktive Sache. Ein sehr umfangreicher Test des amerikanischen Dienstes Phoronix ergab, dass die Entwicklung von GCC 5 bis inklusive 10 weniger als 5 Prozent Performancegewinn brachte [2]. Ein weiterer Grund, warum man Compilerexperimente nicht mit der produktiv genutzten Linux-Distribution durchführen sollte, ist, dass der Compiler in modernen Unix-Betriebssystemen für die eigentliche Funktion des Systems wichtig ist. Der Autor begegnete diesem Problem durch eine in VirtualBox laufende VM. Öffnen Sie diese im ersten Schritt und laden Sie den aktuellen Quellcode der GCC-Entwicklerschaft herunter:

tamhan@tamhan-VirtualBox:~$ svn co svn://gcc.gnu.org/svn/gcc/trunkgcc-trunk . . . Ausgecheckt, Revision 280157.

Die Kompilation von GCC sollte außerhalb des eigentlichen Quellcodeverzeichnisses erfolgen, wesha...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang