Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli articoli in questa sezione della documentazione illustrano un subset dei messaggi di errore generati dal compilatore.
Importante
I compilatori e gli strumenti di compilazione di Visual Studio possono segnalare molti tipi di errori e avvisi. Dopo aver trovato un errore o un avviso, gli strumenti di compilazione possono fare ipotesi sulla finalità del codice e tentare di continuare, in modo che più problemi possano essere segnalati contemporaneamente. Se la supposizione degli strumenti non è corretta, gli errori o avvisi successivi potrebbero non essere applicabili al progetto. Quando si correggono i problemi nel progetto, iniziare sempre con il primo errore o avviso restituito e ricompilare spesso. Una correzione può risolvere più errori successivi.
Per ottenere informazioni su un messaggio di diagnostica specifico in Visual Studio, selezionarlo nella finestra Output e premere F1. Visual Studio apre la pagina della documentazione per tale errore, se presente. È anche possibile usare lo strumento di ricerca nella parte superiore della pagina per trovare articoli su errori o avvisi specifici. In alternativa, esplorare l'elenco di errori e avvisi per strumento e digitare il sommario in questa pagina.
Nota
Non tutti gli errori o gli avvisi di Visual Studio sono documentati. In molti casi, il messaggio di diagnostica fornisce tutte le informazioni disponibili. Se si è arrivati a questa pagina e si ritiene che il messaggio di errore o di avviso richieda spiegazioni aggiuntive, segnalarlo usando i pulsanti di feedback in questa pagina. Se si ritiene che l'errore o l'avviso non sia corretto o si è riscontrato un altro problema con il set di strumenti, segnalare un problema di prodotto nel sito Della community degli sviluppatori. È anche possibile inviare commenti e suggerimenti e immettere bug nell'IDE. In Visual Studio passare alla barra dei menu e scegliere Guida > Inviare commenti e suggerimenti > Segnalare un problemaoppure inviare un suggerimento usando Guida > Inviare commenti e suggerimenti > Suggerire una funzionalità. Alcuni argomenti relativi agli errori del compilatore sono stati creati che non vengono generati dal compilatore e ora reindirizzano a questa pagina.
È possibile trovare ulteriore assistenza per errori e avvisi nei forum di Microsoft Q&A C++. In alternativa, cercare il numero di errore o di avviso nel sito della community degli sviluppatori di Visual Studio C++. È anche possibile cercare Stack Overflow per trovare soluzioni.
Per i collegamenti ad altre risorse della Guida e della community, vedere Guida e community di Visual C++.
Messaggi di errore
| Errore | Messaggio |
|---|---|
| Errore del compilatore C2500 | 'identifier1': 'identifier2' è già una classe base diretta |
| Errore del compilatore C2501 | 'identifier': '__declspec(identificatore)' può essere applicato solo a struct, unioni, classi o membri di campi di bit senza segno |
| Errore del compilatore C2502 | 'identifier': troppi modificatori di accesso nella classe base |
| Errore del compilatore C2503 | 'class': le classi di base non possono contenere matrici di dimensioni zero |
| Errore del compilatore C2504 | 'class': classe base non definita |
| Errore del compilatore C2505 | 'symbol': '__declspec(identificatore)' può essere applicato solo a dichiarazioni o definizioni di oggetti globali o membri dati statici |
| Errore del compilatore C2506 | 'member': '__declspec(identificatore)' non può essere applicato a questo simbolo |
| Errore del compilatore C2507 | 'identifier': troppi modificatori virtuali nella classe di base |
| Errore del compilatore C2508 | 'identifier': '__declspec(specifier1)' non può essere combinato con '__declspec(specifier2)' |
| Errore del compilatore C2509 | 'identifier': funzione membro non dichiarata in 'class' |
| Errore del compilatore C2510 | 'identifier': la parte sinistra di '::' deve essere una classe/struttura/unione |
| Errore del compilatore C2511 | 'identifier': funzione membro di overload non trovata in 'class' |
| Errore del compilatore C2512 | 'identifier': nessun costruttore predefinito appropriato disponibile |
| Errore del compilatore C2513 | '*type': nessuna variabile dichiarata prima di '=' |
| Errore del compilatore C2514 | 'class': la classe non ha costruttori |
| Errore del compilatore C2515 | 'identifier': 'vtguard' può essere applicato solo alle dichiarazioni di classe o alle definizioni |
| Errore del compilatore C2516 | 'class': non è una classe di base legale |
| Errore del compilatore C2517 | 'identifier': il diritto di '::' non è definito |
| Errore del compilatore C2518 |
parola chiave 'keyword' non è valida in un elenco di classi di base; previsto un class nome |
| Errore del compilatore C2519 | 'identifier': gli attributi WinRT possono contenere solo campi pubblici |
| Errore del compilatore C2520 | 'class': nessun costruttore non esplicito disponibile per la conversione implicita |
| Errore del compilatore C2521 | un distruttore/finalizzatore non accetta argomenti |
| Errore del compilatore C2522 | 'identifier': l'identificatore di overload non può essere usato in 'identifier1' perché è già specificato in 'identifier2' |
| Errore del compilatore C2523 | 'class::~identifier': destructor/finalizer tag non corrispondente |
| Errore del compilatore C2524 | 'identifier': un distruttore/finalizzatore deve avere un elenco di parametri 'void' |
| Errore del compilatore C2525 | 'identifier': il parametro 'identifier1' è denominato 'identifier2' nella funzione di base e deve essere confrontato in un'implementazione pubblicata |
| Errore del compilatore C2526 | 'identifier1': La funzione di collegamento C non può restituire la classe C++ 'identifier2' |
| Errore del compilatore C2527 | 'identifier': DefaultOverload non può essere specificato sia su 'function1' che su 'function2'. Rimuovere una specifica o rinominare la funzione durante l'implementazione |
| Errore del compilatore C2528 | 'identifier': puntatore a riferimento non valido |
| Errore del compilatore C2529 | 'identifier': il riferimento al riferimento non è valido |
| Errore del compilatore C2530 | 'identifier': i riferimenti devono essere inizializzati |
| Errore del compilatore C2531 | 'identifier': riferimento a un campo di bit non valido |
| Errore del compilatore C2532 | 'identifier': modificatore non valido per riferimento |
| Errore del compilatore C2533 | 'identifier': costruttori non consentiti per un tipo restituito |
| Errore del compilatore C2534 | 'identifier': il costruttore non può restituire un valore |
| Errore del compilatore C2535 | 'identifier': funzione membro già definita o dichiarata |
| Errore del compilatore C2536 | Obsoleta. |
| Errore del compilatore C2537 | 'specifier': specifica di collegamento non valida |
| Errore del compilatore C2538 | Obsoleta. |
| Errore del compilatore C2539 | Obsoleta. |
| Errore del compilatore C2540 | espressione non costante come associata a matrice |
| Errore del compilatore C2541 | 'identifier': impossibile eliminare oggetti che non sono puntatori |
| Errore del compilatore C2542 | 'identifier': l'oggetto classe non ha un costruttore per l'inizializzazione |
| Errore del compilatore C2543 | previsto ']' per l'operatore '[]' |
| Errore del compilatore C2544 | previsto ')' per l'operatore '()' |
| Errore del compilatore C2545 | 'operator': impossibile trovare l'operatore di overload |
| Errore del compilatore C2546 | 'identifier': quando un tipo è definito sia in un pia che in un'operatore di interoperabilità primario non deve essere fatto riferimento per primo |
| Errore del compilatore C2547 | 'identifier': tutti i parametri di un metodo pubblicato devono essere denominati in modo esplicito nella dichiarazione |
| Errore del compilatore C2548 | 'function': argomento predefinito mancante per il parametro parameter |
| Errore del compilatore C2549 | La conversione definita dall'utente non può specificare un tipo restituito |
| Errore del compilatore C2550 | 'identifier': gli elenchi di inizializzatori del costruttore sono consentiti solo nelle definizioni del costruttore |
| Errore del compilatore C2551 | il tipo 'void *' richiede un cast esplicito |
| Errore del compilatore C2552 | 'identifier': non è possibile inizializzare le aggregazioni con un elenco di inizializzatori |
| Errore del compilatore C2553 | 'typederived_class::function': override del tipo restituito della funzione virtuale differisce da 'type base_class::function' |
| Errore del compilatore C2554 | 'variabile': 'constinit' è solo permesso su una dichiarazione di variabile con durata di archiviazione statica o di thread |
| Errore del compilatore C2555 | 'derived_class::function': override del tipo restituito della funzione virtuale è diverso e non covariante da 'base_class::function' |
| Errore del compilatore C2556 | 'function1': la funzione sovraccaricata differisce solo nel tipo di ritorno da 'function2' |
| Errore del compilatore C2557 | 'identifier': i membri privati e protetti non possono essere inizializzati senza un costruttore |
| Errore del compilatore C2558 | classe 'class': nessun costruttore di copia disponibile o copy è dichiarato 'explicit' |
| Errore del compilatore C2559 | 'identifier': impossibile eseguire l'overload di una funzione membro senza ref-qualifier con una funzione membro con ref-qualifier |
| Errore del compilatore C2560 | 'identifier': impossibile eseguire l'overload di una funzione membro con ref-qualifier con una funzione membro senza ref-qualifier |
| Errore del compilatore C2561 | 'function': la funzione deve restituire un valore |
| Errore del compilatore C2562 | 'function': funzione 'void' che restituisce un valore |
| Errore del compilatore C2563 | mancata corrispondenza nell'elenco dei parametri formali |
| Errore del compilatore C2564 | Obsoleta. |
| Errore del compilatore C2565 | 'identifier': il qualificatore di riferimento non è valido per costruttori/distruttori |
| Errore del compilatore C2566 | funzione di overload nell'espressione condizionale |
| Errore del compilatore C2567 | impossibile aprire i metadati in 'filename', possible_reason |
| Errore del compilatore C2568 | 'identifier': impossibile risolvere l'overload della funzione |
| Errore del compilatore C2569 | 'identifier': l'enumerazione/unione non può essere usata come classe base |
| Errore del compilatore C2570 | 'identifier': l'unione non può avere classi di base |
| Errore del compilatore C2571 | 'identifier': la funzione virtuale non può essere in unione 'union' |
| Errore del compilatore C2572 | 'function': ridefinizione dell'argomento predefinito: numero di parametro |
| Errore del compilatore C2573 | 'class': impossibile eliminare puntatori a oggetti di questo tipo. La classe non dispone di overload di posizionamento per 'operator delete'. Usare ::d elete o aggiungere 'operator delete(void*)' alla classe |
| Errore del compilatore C2574 | 'function': non può essere dichiarato statico |
| Errore del compilatore C2575 | 'identifier': solo le funzioni membro e le basi possono essere virtuali |
| Errore del compilatore C2576 | 'identifier': non può introdurre un nuovo metodo virtuale come 'public'. Prendere in considerazione la possibilità di rendere il metodo non virtuale o modificare l'accessibilità in "interno" o "privato protetto" |
| Errore del compilatore C2577 | 'identifier': un distruttore/finalizzatore non può avere un tipo restituito |
| Errore del compilatore C2578 | 'class': il tipo non può avere un costruttore 'protected' o 'protected public' |
| Errore del compilatore C2579 | impossibile risolvere il tipo di tipo (offset). È previsto nel nome del file |
| Errore del compilatore C2580 | 'identifier': non sono consentite più versioni di una funzione membro speciale predefinita |
| Errore del compilatore C2581 | 'type': funzione statica 'operator =' non valida |
| Errore del compilatore C2582 | La funzione 'operator operator' non è disponibile in 'type' |
| Errore del compilatore C2583 | 'identifier': 'const/volatile' il puntatore 'this' non è permesso per costruttori/distruttori |
| Errore del compilatore C2584 | 'class': la base diretta 'base_class2' non è accessibile; già una base di 'base_class1' |
| Errore del compilatore C2585 | la conversione esplicita in 'type' è ambigua |
| Errore del compilatore C2586 | sintassi di conversione non corretta definita dall'utente: indiretti illegali |
| Errore del compilatore C2587 | 'identifier': uso non valido della variabile locale come parametro predefinito |
| Errore del compilatore C2588 | '::~identifier': distruttore globale/finalizzatore globale non valido |
| Errore del compilatore C2589 | 'identifier': token non valido sul lato destro di '::' |
| Errore del compilatore C2590 | 'identifier': solo un costruttore può avere un elenco di inizializzatori di base/membro |
| Errore del compilatore C2591 | ExclusiveTo non può usare 'type' come argomento. Solo una 'classe ref' è un argomento valido |
| Errore del compilatore C2592 | 'class': 'base_class2' viene ereditato da 'base_class1' e non può essere ri-specificato |
| Errore del compilatore C2593 | 'operator identifier' è ambiguo |
| Errore del compilatore C2594 | 'operator': conversioni ambigue da 'type1' a 'type2' |
| Errore del compilatore C2595 | 'identifier' Un tipo di attributo WinRT deve essere sealed |
| Errore del compilatore C2596 | 'identifier' Un campo attributo WinRT può essere solo una classe 'public enum', 'int', 'unsigned int', 'bool', 'Platform::Type', 'Platform::String' o 'Windows::Foundation::HResult' |
| Errore del compilatore C2597 | riferimento non valido a un membro non statico 'identifier' |
| Errore del compilatore C2598 | la specifica di collegamento deve essere nell'ambito globale |
| Errore del compilatore C2599 | 'identifier': la dichiarazione forward di un'enumerazione gestita/WinRT non è consentita |
Vedi anche
Errori e avvisi del compilatore C/C++ e degli strumenti di compilazione
Errori del compilatore C2000 - C3999, C7000 - C7999