Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Simptome

Când încercați să declare un șablon de funcție variadic ca un prieten de un șablon de clasă, compilator C++ ar fi un mesaj de eroare în loc de a accepta codul. De exemplu, atunci când efectuați următoarea declarație:

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{};
};

Este posibil să primiți următorul mesaj de eroare:

eroare C2783: 'void f (C < tipuri... >, < U > B)': nu poate deduce șablon argument pentru 'U'

Cauza

Cauza este că compilatorul C++ nu se potrivesc cu declarația de funcția prieten pentru o declarație existente.

Rezolvare

Această actualizare este disponibilă de la Centrul de descărcare Microsoft.

Centrul de descărcare Microsoft

Pentru mai multe informaţii despre cum să descărcați fișierele de suport Microsoft, faceţi clic pe următorul număr de articol pentru a vedea articolul în baza de cunoştinţe Microsoft:

119591 Cum se obţin fişierele de suport Microsoft de la serviciile online

Microsoft a scanat acest fișier pentru viruşi. Microsoft utilizează cele mai actualizate software pentru detectarea virușilor care sunt disponibile la data la care fișierul a fost postat. Fisierul este stocat pe servere securizate care ajută la împiedicarea modificărilor neautorizate a fișierului.

Cerințe preliminare

Această remediere rapidă necesită Visual Studio 2015 Update 3.

Informații despre repornire

Trebuie să reporniți computerul după aplicarea acestei remedieri rapide.

Informații de înlocuire

Această remediere rapidă nu înlocuiește nicio remediere rapidă lansată anterior.

Informații despre fișier

Versiunea în limba engleză a acestei remedieri rapide are atributele de fişier (sau atribute de fişier mai recente) enumerate în următorul tabel. Datele şi orele acestor fişiere sunt exprimate în listă în ora universală (UTC). Când vizualizaţi informaţiile despre fișier, acesta este convertit la ora locală. Pentru a găsi diferenţa dintre UTC şi ora locală, utilizaţi fila Fusul orar în elementul de Data şi ora în Panoul de Control.

Nume de fișier

Versiune fișier

Dimensiune fișier

Data

Ora

Platformă

VC14-KB4096429.exe

14.0.24240

19,177,304

04/19/2018

02:32 AM

X86

Soluție

Pentru a rezolva această problemă, nu declara variadic function șablon ca prieten un șablon de clasă.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×