/Zc:externConstexpr (Activer les variables constexpr extern)

L’option /Zc:externConstexpr du compilateur indique au compilateur de se conformer à la norme C++ et d’autoriser la liaison externe pour les constexpr variables. Par défaut, Visual Studio fournit toujours une constexpr liaison interne variable, même si vous spécifiez la extern mot clé.

Syntaxe

/Zc:externConstexpr[-]

Notes

L’option /Zc:externConstexpr du compilateur entraîne l’application de la liaison externe aux variables déclarées à l’aide extern constexprde .

Dans les versions antérieures de Visual Studio, par défaut ou si /Zc:externConstexpr- elle est spécifiée, Visual Studio applique une liaison interne aux constexpr variables même si la extern mot clé est utilisée. L’option /Zc:externConstexpr est disponible à partir de Visual Studio 2017 Update 15.6. et est désactivé par défaut.

À partir de Visual Studio 2022 Update 17.6, l’option active à la /permissive- fois /Zc:externConstexpr et /Zc:lambda. Dans les versions antérieures, /permissive- n’a pas activé l’une ou l’autre.

Si un fichier d’en-tête contient une variable déclarée extern constexpr, elle doit être marquée __declspec(selectany) pour fusionner les déclarations dupliquées en une seule instance dans le fichier binaire lié. Sinon, vous pouvez voir des erreurs d’éditeur de liens, par exemple, LNK2005, pour les violations de la règle de définition unique.

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:externConstexpr- accédez /Zc:externConstexpr aux options supplémentaires : volet.

Voir aussi

Mot clé auto
permissive
/Zc (Conformité)