Gegenüber C/C++ Version V4.0B03 haben sich einige wesentliche Punkte geändert.
Das switch
-Statement akzeptiert jetzt eine Expression vom Typ long long
.
Der Inhalt der ETR-Datei hat sich geändert. Der neue Inhalt kann nicht mit einem Compiler V4.0B03 oder älter genutzt werden.
Gegenüber C/C++ Version V4.0B00 haben sich einige wesentliche Punkte geändert.
Die Bibliothek für die Sprachmodi C++2017 und C++2020 wird jetzt in zwei Versionen angeboten. Die Version 1 ist der Default und kompatibel zur früheren Bibliothek. Die Version 2 implementiert einige Features des C++ 2020 Standards. Zu Details siehe das C/C++ Benutzerhandbuch [4].
Gegenüber C/C++ Version V4.0A30 haben sich einige wesentliche Punkte geändert.
Der Compiler unterstützt jetzt die Sprachfeatures des C++ 2020 Standards. Siehe das C/C++ Benutzerhandbuch [4] zu ein paar Einschränkungen. Eine volle Unterstützung der Bibliothek ist aktuell nicht verfügbar, statt dessen wird die existierende C++ 2017-Bibliothek verwendet.
Damit gibt es eine neue Option für diesen Sprachmodus. Die Voreinstellung beim Aufruf mit CC
ist jetzt C++ 2020. Bis Version 4.0A30 war die Voreinstellung C++ 2017.
Es gibt jetzt eine Überprüfung, ob die Argumente bei einem printf
-Aufruf mit den Angaben im Formatstring übereinstimmen (siehe __printf_args-Pragma und __scanf_args-Pragma im C/C++ Benutzerhandbuch [4]).
Gegenüber C/C++ Version V3.2D haben sich einige wesentliche Punkte geändert.
Die Änderungen des vorliegenden Handbuchs gegenüber dem Benutzerhandbuch zu C/C++ V3.2D betreffen im Wesentlichen die neuen Sprachmodi C11 und C++ 2017 sowie die darauf zurückzuführenden Änderungen von Compiler-Optionen.
Der wichtigste Punkt ist die Voreinstellung des Compilers. Wenn der Sprachmodus nicht explizit angegeben wird, nimmt er immer den modernsten realisierten Sprachstandard. Dies war bei der Version 3 der Fall und ist es jetzt auch. Bei der Version 3 war der (damals) modernste Standard C89. Jetzt unterstützt der Compiler C11 und dies ist auch die Voreinstellung. Bei C++ ist dies ähnlich. Die Version 3 hatte als (damals) modernsten Standard eine Vorabversion von C++98, der aktuelle Compiler unterstützt C++17.
Der neue Compiler unterstützt jetzt 10 Sprachmodi, je 5 für C und C++. Um diese Vielzahl besser zu handhaben, wurde die Syntax zur Angabe des Sprachmodus neu gestaltet. Die in der Version 3 gebräuchlichen Optionen werden weiterhin erkannt und auf neue Optionen abgebildet. Die Abbildung ist:
|
|
|
|
|
|
|
|
|
|
|
|
Mit der Unterstützung der neuen Sprachmodi wurde auch die Erkennung von fragwürdigen Source-Konstrukten überarbeitet. In manchen Situationen kommen jetzt andere Meldungen als bei C/C++ V3.2D. Dabei kann sich sowohl das Fehlergewicht, die Fehlernummer als auch der Text geändert haben. Es gibt ein paar Situationen, wo entweder C/C++ V3.2 eine Meldung bringt oder C/C++ V4.0, aber nicht beide.