Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Allgemeine C++-Optionen

&pagelevel(5)&pagelevel

Mit den allgemeinen C++-Optionen steuern Sie folgende C++-Spracheigenschaften:

  • ob die Schlüsselwörter wchar_t und bool erkannt werden
  • welchen Gültigkeitsbereich die Initialisierungsanweisungen in for- und while-Schleifen haben

  • ob 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.