Partager via


/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

  1. 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.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. 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