Der GCC GNU-Compiler bietet C ++ 17-Unterstützung

Mit der 7.1-Version des GCC (GNU Compiler Collection), die diese Woche veröffentlicht wurde, erhält die Plattform frühzeitig Unterstützung für den C ++ 17-Standard und Diagnoseverbesserungen.

Version 7.1 verfügt über ein C ++ - Frontend mit experimenteller Unterstützung für alle C ++ 17-Entwurfsspezifikationen. Die -std=c++1zund -std=gnu++1zOptionen und die libstdc++unterstützt werden , und die Bibliothek hat die meisten C ++ 17 Entwurf Bibliothek implementiert Funktionen. Die frühere Version von GCC 6.1 entsprach dem C ++ 14-Standard.

Die GCC 7-Serie unterscheidet sich von früheren Versionen dadurch, dass standardmäßig LRA (Local Register Allocator) für neue Ziele verwendet wird und Cilk + -Erweiterungen für die Sprachen C und C ++ veraltet sind. Außerdem wurden einige Verhaltensweisen gelockert, um die Kompilierungs- oder Laufzeitleistung zu verbessern. Einige Änderungen können jedoch bei der Portierung auf GCC 7 "Kummer verursachen". Dies geht aus Versionshinweisen hervor, in denen Präprozessor- und C-Probleme sowie C ++ - Sprachprobleme wie strengere Regeln für Vorlagen genannt werden. "GCC 7 akzeptiert keine verschiedenen schlecht geformten Konstrukte mehr, bei denen Vorlagen verwendet werden", heißt es in den Anmerkungen.

GCC 7.1 verbessert auch die ausgegebene Diagnose, einschließlich verbesserter Standorte, und Optimierungsverbesserungen treten bei allen Intra- und Interprocedural-Optimierungen, Verbindungszeitoptimierungen und verschiedenen Ziel-Back-Ends auf, z. und Verbesserungen beim Schrumpfen. Darüber hinaus kann der Adressbereiniger von GCC jetzt die Verwendung von Variablen melden, nachdem sie ihren Gültigkeitsbereich verlassen haben. GCC kann für das Offloading der OpenMP-API auf Nvidia PTX-GPGPUs konfiguriert werden. Einige Codes, die mit älteren GCC-Versionen kompiliert wurden, müssen möglicherweise angepasst werden. Die Sammlung enthält Frontends für C, C ++, Objective-C, Fortran, Ada und Go.