/Zc:__cplusplus (Aktualisiertes __cplusplus Makro aktivieren)

Mit /Zc:__cplusplus der Compileroption kann das __cplusplus Präprozessormakro einen aktualisierten Wert für die Unterstützung neuer C++-Sprachstandards melden. Standardmäßig gibt Visual Studio immer den Wert 199711L für das __cplusplus Präprozessormakro zurück.

Syntax

/Zc:__cplusplus[-]

Hinweise

Das __cplusplus Präprozessormakro wird häufig verwendet, um unterstützung für eine bestimmte Version des C++-Standards zu melden. Da viele vorhandenen Code scheinbar vom Wert dieses Makroabgleichs 199711Labhängen, ändert der Compiler nicht den Wert des Makros, es sei denn, Sie melden sich explizit mit der /Zc:__cplusplus Compileroption an. Die /Zc:__cplusplus Option ist ab Visual Studio 2017, Version 15.7, verfügbar und ist standardmäßig deaktiviert. In früheren Versionen von Visual Studio und standardmäßig oder falls /Zc:__cplusplus- angegeben, gibt Visual Studio den Wert 199711L für das __cplusplus Präprozessormakro zurück. Die /permissive- Option ist nicht aktiviert /Zc:__cplusplus.

Wenn die /Zc:__cplusplus Option aktiviert ist, hängt der vom __cplusplus Makro gemeldete Wert von der /std Versionsoptionseinstellung ab. Diese Tabelle zeigt die möglichen Werte für das Makro:

/Zc:__cplusplus Option /std Option Wert vom Typ __cplusplus
Zc:__cplusplus /std:c++14 (Standard) 201402L
Zc:__cplusplus /std:c++17 201703L
Zc:__cplusplus /std:c++20 202002L
Zc:__cplusplus /std:c++latest siehe Text
Zc:__cplusplus- (deaktiviert) Beliebiger Wert 199711L
Nicht angegeben Beliebiger Wert 199711L

Der Compiler unterstützt keine Standardoptionen für C++98, C++03 oder C++11. Die /std:c++20 Option ist ab Visual Studio 2019, Version 16.11, verfügbar. Der Wert der __cplusplus/std:c++latest Option hängt von der Version von Visual Studio ab. Es ist immer mindestens ein höherer als der höchste unterstützte __cplusplus Standardwert, der von Ihrer Version von Visual Studio unterstützt wird.

Verwenden Sie zum präziseren Erkennen von Änderungen am Compilertoolset das _MSC_VER vordefinierte Makro. Der Wert dieses integrierten Makros wird für jedes Toolsetupdate in Visual Studio 2017 und höheren Versionen heraufgesetzt. Das _MSVC_LANG vordefinierte Makro meldet die Standardversion, ob die /Zc:__cplusplus Option aktiviert oder deaktiviert ist. Wenn /Zc:__cplusplus diese Option aktiviert ist, __cplusplus hat sie denselben Wert wie _MSVC_LANG.

So legen Sie diese Compileroption in Visual Studio fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Fügen Sie den Bereich "Zusätzliche /Zc:__cplusplus Optionen" hinzu oder /Zc:__cplusplus- fügen Sie sie hinzu.

Siehe auch

/Zc (Konformität)
/std (Standardversion für die Sprache festlegen)
Vordefinierte Makros