Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Lorsque vous essayez de déclarer un modèle de fonction variadic en tant qu’ami d’un modèle de classe, le compilateur C++ renvoie un message d’erreur au lieu d’accepter le code. Par exemple, lorsque vous effectuez la déclaration suivante :

template<typename T>
struct B { };

template<typename... Types>
struct C { };

template<typename... Types, typename U>
void f(C<Types...>, B<U>)
{
}

template<typename T>
class A {
	template<typename... Types, typename U>
	friend void f(C<Types...>, B<U>);
};

int main()
{
    f(C<int>{}, B<int>{});
    A<int> a{};
};

Vous pouvez recevoir le message d’erreur suivant :

l’erreur C2783 : 'void f (C < Types... >, B < U >)' : Impossible de déduire l’argument de modèle pour 'U'

Cause

La cause est que le compilateur C++ ne peut pas correspondre à la déclaration de la fonction friend à une déclaration existante.

Résolution

Cette mise à jour est disponible à partir du Centre de téléchargement Microsoft.

Centre de téléchargement Microsoft

Pour plus d'informations sur la façon de télécharger des fichiers de support technique Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

119591 Comment obtenir des fichiers de soutien technique Microsoft auprès des services en ligne

Microsoft a vérifié que ce fichier ne comportait pas de virus. Microsoft a utilisé les logiciels de détection de virus les plus récents disponibles à la date à laquelle le fichier a été validé. Le fichier est stocké sur des serveurs sécurisés, ce qui empêche toute modification non autorisée du fichier.

Conditions préalables

Ce correctif requiert 3 mise à jour de Visual Studio 2015.

Informations sur le redémarrage

Vous devrez peut-être redémarrer l'ordinateur après avoir appliqué ce correctif.

Informations sur le remplacement

Ce correctif ne remplace aucun correctif publié précédemment.

Informations sur les fichiers

La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

VC14-KB4096429.exe

14.0.24240

19,177,304

04/19/2018

02:32 AM

X86

Solution de contournement

Pour contourner ce problème, ne pas déclarer les variadic fonction le modèle en tant qu’ami d’un modèle de classe.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×