Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’option /Zc:templateScope du compilateur active les vérifications du comportement C++ Standard autour de l’ombre des paramètres de modèle.
Syntaxe
/Zc:templateScope[-]
Notes
La norme C++ n’autorise pas la réutilisation du nom d’un paramètre de modèle (ou de l’ombre) pour une autre déclaration dans l’étendue du modèle. L’option /Zc:templateScope du compilateur active une vérification d’erreur pour ce type d’ombre.
L’option /Zc:templateScope est nouvelle dans Visual Studio 2022 version 17.5 preview 1. L’option est désactivée par défaut même lorsque le code est compilé à l’aide de l’option /permissive- (ou d’une option qui implique /permissive-, par /std:c++20 exemple)./std:c++latest Pour activer la vérification des erreurs, vous devez ajouter /Zc:templateScope explicitement à la ligne de commande du compilateur. Pour désactiver explicitement la vérification, utilisez l’option /Zc:templateScope- .
Exemple
Sous /Zc:templateScope, cet exemple de code génère une erreur :
template<typename T>
void f(T&& t) {
int T = 13;
}
/* Output:
t.cpp(3): error C7527: 'T': a template parameter name cannot be reused within its scope
*/
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.
Dans options supplémentaires, ajoutez
/Zc:templateScopeou/Zc:templateScope-. Choisissez OK ou Appliquer pour enregistrer vos modifications.
Voir aussi
/Zc (Conformité)
/permissive-
/std (Spécifier la version du standard du langage)