Partager via


/Zc:hiddenFriend (Appliquer des règles d’ami masquées C++ standard)

Spécifie que le compilateur est conforme au traitement standard C++ des fonctions amies masquées ou des modèles de fonction.

Syntaxe

/Zc:hiddenFriend[-]

Notes

L’option /Zc:hiddenFriend active un sous-ensemble du comportement de l’option /permissive- . Il indique au compilateur de se conformer à la norme pour les amis masqués. Le compilateur inclut uniquement les amis masqués dans la recherche dépendante de l’argument (ADL) pour les instances explicites ou les paramètres de modèle du type de classe englobant. La restriction vous permet d’utiliser des amis masqués pour empêcher l’application d’opérations sur un type aux conversions implicites. Cette option peut améliorer la vitesse de génération dans le code qui ne peut pas utiliser /permissive-autrement .

Un ami masqué est une fonction ou un friend modèle de fonction déclaré uniquement dans une définition de modèle de classe ou de classe. Par défaut, le compilateur Microsoft C++ ne supprime pas les déclarations d’ami masquées en tant que candidats à la résolution de surcharge partout où elle doit. Ce comportement hérité peut ralentir le compilateur en incluant les fonctions ami masquées comme candidats possibles dans d’autres contextes.

Le comportement d’ami masqué C++ standard est activé par défaut sous /permissive-. Pour spécifier le comportement d’ami masqué hérité lorsque l’option /permissive- est spécifiée, utilisez /Zc:hiddenFriend-. L’utilisation de modules C++20 nécessite un comportement ami masqué standard.

L’option /Zc:hiddenFriend est disponible à partir de Visual Studio 2019 version 16.4.

Pour obtenir des exemples de comportement du compilateur lorsque vous spécifiez /Zc:hiddenFriend, consultez les règles de recherche de nom de l’ami masqué.

Pour définir cette option du compilateur dans l'environnement de développement 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. Modifiez la propriété Options supplémentaires pour inclure /Zc:hiddenFriend ou /Zc:hiddenFriend- choisissez OK.

Voir aussi

/Zc (Conformité)
/permissive-