Partager via


/Zc (Conformité)

Utilisez les options du /Zc compilateur pour spécifier le comportement du compilateur standard ou spécifique à Microsoft.

Syntaxe

/Zc:option{,option ...}

Vous pouvez définir plusieurs /Zc options séparées par des virgules dans une seule /Zc option de compilateur. Si une /Zc option est activée et désactivée dans la même commande, l’option qui s’affiche en dernier est utilisée.

Notes

Lorsque Visual Studio a implémenté une extension en C ou C++ incompatible avec la norme, vous pouvez utiliser une option de conformité pour spécifier un /Zc comportement conforme aux normes ou propre à Microsoft. Pour certaines options, le comportement spécifique à Microsoft est le comportement par défaut, afin d’empêcher les modifications cassantes à grande échelle apportées au code existant. Dans d’autres cas, la valeur par défaut est le comportement standard, où les améliorations apportées à la sécurité, aux performances ou à la compatibilité l’emportent sur les coûts des changements cassants. Le paramètre par défaut de chaque option de conformité peut changer dans les versions plus récentes de Visual Studio. Pour plus d’informations sur chaque option de conformité, consultez l’article relatif à l’option spécifique. L’option /permissive- du compilateur définit implicitement les options de conformité qui ne sont pas définies par défaut sur leurs paramètres conformes.

Voici les options du /Zc compilateur :

Option Comportement
/Zc:__cplusplus[-] Activez la __cplusplus macro pour signaler la norme prise en charge. Désactivé par défaut.
/Zc:__STDC__ Activez la macro pour signaler que la __STDC__ norme C est prise en charge. Désactivé par défaut.
/Zc:alignedNew[-] Activez l’allocation dynamique en C++17 sur-alignée. Désactivé par défaut, sauf si /std:c++17 ou version ultérieure est spécifié.
/Zc:auto[-] Appliquez la nouvelle signification C++ Standard pour auto. Activé par défaut.
/Zc:char8_t[-] Activez ou désactivez la prise en charge littérale native u8 C++20 en tant que const char8_t. Désactivé par défaut, sauf si /std:c++20 ou version ultérieure est spécifié.
/Zc:checkGwOdr[-] Appliquer les violations ODR C++ standard sous /Gw.
/Zc:enumTypes[-] Activez les règles C++ standard pour la enum déduction de type. Désactivé par défaut.
/Zc:externC[-] Appliquez des règles C++ standard pour extern "C" les fonctions. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:externConstexpr[-] Activez la liaison externe pour constexpr les variables. Désactivé par défaut.
/Zc:forScope[-] Appliquer des règles d’étendue C++ for standard. Activé par défaut.
/Zc:gotoScope[-] Appliquez des règles C++ goto standard autour de l’initialisation des variables locales. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:hiddenFriend[-] Appliquez des règles d’ami masquées C++ standard. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:implicitNoexcept[-] Activez implicitement noexcept les fonctions requises. Activé par défaut.
/Zc:inline[-] Supprimez les fonctions ou données non référencées si elles sont COMDAT ou n’ont que des liaisons internes. Désactivé par défaut.
/Zc:lambda[-] Activez le nouveau processeur lambda pour les vérifications syntaxiques en mode conformité dans les lambdas génériques. Désactivé par défaut, sauf si /std:c++20 ou version ultérieure est spécifié.
/Zc:noexceptTypes[-] Appliquer des règles C++17 noexcept . Désactivé par défaut, sauf si /std:c++17 ou version ultérieure est spécifié.
/Zc:nrvo[-] Activez les élisions de copie et de déplacement facultatives. Désactivé par défaut, sauf si /O2, /permissive-ou /std:c++20 version ultérieure est spécifié.
/Zc:preprocessor[-] Utilisez le nouveau préprocesseur conforme. Désactivé par défaut, sauf si /std:c11 ou version ultérieure est spécifié.
/Zc:referenceBinding[-] Un UDT temporaire ne sera pas lié à une référence lvalue non-const. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:rvalueCast[-] Appliquez les règles de conversion de type explicite C++ standard. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:sizedDealloc[-] Activez les fonctions de désallocation de taille mondiale C++14. Activé par défaut.
/Zc:strictStrings[-] Désactivez le littéral de chaîne en ou wchar_t* la char* conversion. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:static_assert[-] gestion stricte de static_assert. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:templateScope[-] Appliquez les règles d’ombre des paramètres de modèle C++ standard. Désactivé par défaut.
/Zc:ternary[-] Appliquez des règles d’opérateur conditionnel sur les types d’opérandes. Désactivé par défaut, sauf indication /permissive- contraire.
/Zc:threadSafeInit[-] Activez l’initialisation statique locale thread-safe. Activé par défaut.
/Zc:throwingNew[-] Supposons que operator new les levées sont levées en cas d’échec. Désactivé par défaut.
/Zc:tlsGuards[-] Générer des vérifications d’exécution pour l’initialisation des variables TLS. Activé par défaut.
/Zc:trigraphs[-] Activez les trigraphes (obsolètes, désactivés par défaut).
/Zc:twoPhase- Utilisez le comportement d’analyse de modèle non conforme (applicable uniquement lorsqu’il /permissive- est spécifié, ce qui correspond par défaut à la conformité).
/Zc:wchar_t[-] wchar_t est un type natif, et non un typedef. Activé par défaut.
/Zc:zeroSizeArrayNew[-] Appelez le membre new/delete pour les 0 tableaux d’objets de taille. Activé par défaut.

Pour plus d’informations sur les problèmes de conformité dans MSVC, consultez comportement non standard.

Voir aussi

Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC