heise-Angebot

C++17: GCC, Clang und MSVC im Vergleich

Alle drei Jahre erscheint ein neuer C++-Standard. Doch wie setzen ihn die beliebtesten Compiler GCC, Clang und MSVC um?

In Pocket speichern vorlesen Druckansicht 22 Kommentare lesen
C++17: GCC, Clang und MSVC im Vergleich
Lesezeit: 1 Min.

Mittlerweile veröffentlicht das C++-Standardisierungskomitee alle drei Jahre einen neuen Standard, entsprechend müssen Entwickler noch mehr als zuvor auf die Kompatibilität ihres bevorzugten Compilers achten. Rainer Grimm vergleicht in der aktuellen iX 9/2018 die drei beliebten Compiler GCC, Clang und MSVC und erklärt, wie wichtig die Unterschiede sind.

Hierzu genügt es jedoch nicht, die Compiler ihre Arbeit verrichten zu lassen und die Ergebnisse blind abzuhaken. Vielmehr hilft hier der Einsatz der Onlineversionen – Wandbox, C++ Insights und Compiler Explorer – der drei Compiler. Mit ihnen lässt sich nachvollziehen, was tatsächlich während des Kompiliervorgangs passiert. Und wer sich nicht sicher ist, ob er auf den neuesten Standard umsteigen soll, kann hier die neuen Funktionen testen.

Insgesamt setzen GCC und Clang die Kernsprache zwar schneller um, MSVC punktet jedoch bei den C++-Bibliotheken. Die Unterschiede zeigen sich zum Beispiel mit einer absichtlich erzeugten rekursiven Delegation von Konstruktoren: GCC steigt mit einem "Segmentation fault" zur Laufzeit aus und der MSVC gerät in eine Endlosschleife, die das Compiler-Frontend unterbricht. Clang stellt hingegen bereits beim Übersetzen den Fehler fest.

Viele weitere Tests und einen Überblick der neuen Funktionen finden Interessierte im Artikel.

Siehe dazu auch:

  • Programmiersprachen: C++-Compiler im Überblick, iX 9/2018, S. 84

(fo)