Mit den allgemeinen C++-Optionen steuern Sie folgende C++-Spracheigenschaften:
- ob die Schlüsselwörter
wchar_t
undbool
erkannt werden welchen Gültigkeitsbereich die Initialisierungsanweisungen in
for
- undwhile
-Schleifen habenob die veraltete Template-Spezialisierungs-Syntax akzeptiert wird
Die aufgezählten Spracheigenschaften werden im Cfront-C++-Modus nicht unterstützt.
-K
arg1[,
arg2...]
Allgemeine Eingaberegeln zur -K
-Option finden Sie im Abschnitt "Aufruf-Syntax und allgemeine Regeln". Als Argumente arg zur Steuerung des C++-Frontends sind folgende Angaben möglich:
using_std
no_using_std
Diese Argumente betreffen den Gebrauch der C++-Bibliotheksfunktionen, deren Namen alle im Standard-Namensraum std
definiert sind.
Bei Angabe von -K using_std
ist das Verhalten so, als ob am Beginn einer Übersetzungseinheit die folgenden Zeilen stehen würden:
namespace std{}
using namespace std;
-K using_std
ist die Voreinstellung im erweiterten C++ V3-Modus (-X v3-compatible -X nostrict
).
-K no_using_std
ist die Voreinstellung im strikten C++ V3-Modus (-X v3-compatible -X strict
), im C++ 2017-Modus (-X 2017
) und im C++ 2020-Modus (-X 2020
) und das einzig mögliche Verhalten im Cfront-C++-Modus (-X v2-compatible
).
Wenn im C++ V3-Modus, im C++ 2017-Modus oder im C++ 2020-Modus -K no_using_std
gesetzt ist, muss das Quellprogramm vor dem ersten Gebrauch einer C++-Bibliotheksfunktion die Anweisung using namespace std;
enthalten oder die Namen entsprechend qualifizieren.
wchar_t_keyword
no_wchar_t_keyword
Mit diesen Argumenten legen Sie fest, ob wchar_t
als Schlüsselwort erkannt wird.
-K wchar_t_keyword
ist die Voreinstellung im C++ V3-Modus und das einzig mögliche Verhalten im C++ 2017- und C++ 2020-Modus. In diesem Fall wird das Präprozessor-Makro _WCHAR_T
definiert.
-K no_wchar_t_keyword
ist die Voreinstellung und das einzig mögliche Verhalten im Cfront-C++-Modus.
bool
no_bool
Mit diesen Argumenten legen Sie fest, ob bool
als Schlüsselwort erkannt wird.
-K bool
ist die Voreinstellung im C++ V3-Modus und das einzig mögliche Verhalten im C++ 2017- und C++ 2020-Modus. In diesem Fall wird das Präprozessor-Makro _BOOL
definiert.
-K no_bool
ist die Voreinstellung und das einzig mögliche Verhalten im Cfront-C++-Modus.
old_for_init
new_for_init
Mit diesen Argumenten legen Sie fest, wie eine Initialisierungsanweisung in for
- und while
-Schleifen behandelt werden soll.
-K old_for_init
Spezifiziert, dass eine Initialisierungsanweisung zum selben Gültigkeitsbereich wie die gesamte Schleife gehört. Dies ist die Voreinstellung im Cfront-C++-Modus.
-K new_for_init
Spezifiziert die neue ANSI-C++-konforme Gültigkeitsbereichsregel, die die gesamte Schleife mit ihrem eigenen implizit generierten Gültigkeitsbereich umgibt. Dies ist die Voreinstellung im C++ V3-Modus und das einzig mögliche Verhalten im C++ 2017- und C++ 2020-Modus.
no_old_specialization
old_specialization
Diese Argumente sind nur in den Sprachmodi C++ V3, C++ 2017 und C++ 2020 relevant. Sie legen fest, ob die neue Syntax für Template-Spezialisierungen template<>
verpflichtend ist.
-K no_old_specialization
ist Voreinstellung im C++ V3-Modus und das einzig mögliche Verhalten im C++ 2017- und C++ 2020-Modus. In diesem Fall wird das Makro __OLD_SPECIALIZATION_SYNTAX
vom Compiler nicht definiert.
Die Angabe von -K old_specialization
definiert der Compiler das Makro __OLD_SPECIALIZATION_SYNTAX
implizit mit dem Wert 1.