Symptom
Vid försök att deklarera en variadic funktion-mall som en vän av en klassmall returnerar C++-kompilatorn ett felmeddelande i stället för att acceptera koden. Till exempel när du gör följande deklaration:
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{};
};
Du kan få följande felmeddelande:
fel C2783: 'void f (C < typer... >, < U > för B)': gick inte att härleda mall argument för ”U”
Orsak
Orsaken är att C++-kompilatorn inte matchar försäkran om vän-funktionen på en befintlig deklaration.
Lösning
Uppdateringen kan hämtas från Microsoft Download Center.
Microsoft Download Center
För mer information om hur du hämtar supportfiler från Microsoft klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
119591 Hur du hämtar Microsoft-supportfiler från onlinetjänster
Microsoft har genomsökt denna fil efter virus. Microsoft använde det mest aktuella antivirusprogram som var tillgängligt när filen lades upp. Filen är sparad på servrar med utökad säkerhet som hjälper till att förhindra otillåtna ändringar av den.
Förutsättningar
Den här snabbkorrigeringen kräver Visual Studio 2015 Update 3.
Information om omstart
Du kan behöva starta om datorn när du har installerat den här snabbkorrigeringen.
Information om ersättning
Den här snabbkorrigeringen ersätter inte någon tidigare utgiven snabbkorrigering.
Filinformation
Den engelska versionen av den här snabbkorrigeringen har de filattribut (eller senare filattribut) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (UTC). När du visar filinformationen konverteras den till lokal tid. Använd fliken tidszon i datum och tid på Kontrollpanelen om du vill se skillnaden mellan UTC-tid och lokal tid.
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
VC14-KB4096429.exe |
14.0.24240 |
19,177,304 |
04/19/2018 |
02:32 AM |
X86 |
Temporär lösning
Undvik det här problemet inte deklarera den variadic funktionen mall som en vän av en klassmall.