Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Quando si tenta di dichiarare un template di funzione variadic come friend template di classe, il compilatore C++ restituirebbe un messaggio di errore anziché accettare il codice. Ad esempio, quando si esegue la seguente dichiarazione:

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

Si potrebbe ricevere il seguente messaggio di errore:

errore C2783: 'void f (C < tipi >, < U > B)': Impossibile dedurre un argomento di template per 'U'

Causa

La causa è che il compilatore C++ non può corrispondere alla dichiarazione di funzione friend di una dichiarazione esistente.

Risoluzione

Questo aggiornamento è disponibile dall' Area Download Microsoft.

Area Download Microsoft

Per ulteriori informazioni su come scaricare i file di supporto Microsoft, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

119591 Come ottenere file di supporto Microsoft dai servizi online

Microsoft ha analizzato questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus più recente disponibile alla data in cui il file è stato registrato. Il file è archiviato in un server con protezione avanzata che impedisce modifiche non autorizzate al file.

Prerequisiti

Questo hotfix richiede Visual Studio 2015 Update 3.

Informazioni sul riavvio

Potrebbe essere necessario riavviare il computer dopo avere applicato questo hotfix.

Informazioni sulla sostituzione

Questo hotfix non sostituisce eventuali hotfix precedentemente rilasciato.

Informazioni sui file

La versione inglese di questo hotfix presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di Data e ora nel Pannello di controllo.

Nome del file

Versione del file

Dimensione del file

Data

Ora

Piattaforma

VC14-KB4096429.exe

14.0.24240

19,177,304

04/19/2018

02:32 AM

X86

Soluzione alternativa

Per risolvere questo problema, non dichiarare variadic funzione modello come friend template di classe.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×