/Zc:__cplusplus
(Activer la macro mise à jour __cplusplus
)
L’option /Zc:__cplusplus
du compilateur permet à la __cplusplus
macro de préprocesseur de signaler une valeur mise à jour pour la prise en charge récente des normes de langage C++. Par défaut, Visual Studio retourne toujours la valeur 199711L
de la __cplusplus
macro de préprocesseur.
Syntaxe
/Zc:__cplusplus
[-
]
Notes
La __cplusplus
macro de préprocesseur est couramment utilisée pour signaler la prise en charge d’une version particulière de la norme C++. Étant donné que beaucoup de code existant semble dépendre de la valeur de cette macro correspondante 199711L
, le compilateur ne modifie pas la valeur de la macro, sauf si vous optez explicitement à l’aide de l’option /Zc:__cplusplus
du compilateur. L’option /Zc:__cplusplus
est disponible à partir de Visual Studio 2017 version 15.7 et est désactivée par défaut. Dans les versions antérieures de Visual Studio et par défaut, ou si /Zc:__cplusplus-
elle est spécifiée, Visual Studio retourne la valeur 199711L
de la __cplusplus
macro de préprocesseur. L’option /permissive-
n’active pas /Zc:__cplusplus
.
Lorsque l’option /Zc:__cplusplus
est activée, la valeur signalée par la __cplusplus
macro dépend du /std
paramètre d’option de version. Ce tableau liste les valeurs possibles pour la macro :
Option /Zc:__cplusplus |
Option /std |
Valeur __cplusplus |
---|---|---|
Zc:__cplusplus |
/std:c++14 (valeur par défaut) |
201402L |
Zc:__cplusplus |
/std:c++17 |
201703L |
Zc:__cplusplus |
/std:c++20 |
202002L |
Zc:__cplusplus |
/std:c++latest |
voir le texte |
Zc:__cplusplus- (désactivé) |
Valeur quelconque | 199711L |
Non spécifié(e) | Valeur quelconque | 199711L |
Le compilateur ne prend pas en charge les options de normes pour C++98, C++03 ou C++11. L’option /std:c++20
est disponible à partir de Visual Studio 2019 version 16.11. La valeur de __cplusplus
l’option /std:c++latest
dépend de la version de Visual Studio. Il s’agit toujours d’au moins une valeur standard prise en charge la plus élevée prise en charge __cplusplus
par votre version de Visual Studio.
Pour une détection plus fine des modifications apportées à l’ensemble d’outils du compilateur, utilisez la _MSC_VER
macro prédéfinie. La valeur de cette macro intégrée est incrémentée à chaque mise à jour de l’ensemble d’outils dans Visual Studio 2017 et ultérieur. La _MSVC_LANG
macro prédéfinie signale la version standard si l’option /Zc:__cplusplus
est activée ou désactivée. Quand /Zc:__cplusplus
elle est activée, __cplusplus
a la même valeur que _MSVC_LANG
.
Pour définir cette option de compilateur dans Visual Studio
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.
Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.
Ajoutez ou
/Zc:__cplusplus-
accédez/Zc:__cplusplus
aux options supplémentaires : volet.
Voir aussi
/Zc
(Conformité)
/std
(Spécifier la version du standard du langage)
Macros prédéfinies