Errori del compilatore da C2500 a C2599
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ò causare la scomparsa di molti 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 sei arrivato in questa pagina quando hai usato F1 e pensi che il messaggio di errore o avviso richieda spiegazioni aggiuntive, comunicaci. È possibile usare i pulsanti di feedback in questa pagina per generare un problema di documentazione in GitHub. 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 > Per inviare commenti e > suggerimenti segnala un problema oppure inviare un suggerimento usando La Guida > invia > commenti e suggerimenti Invia un suggerimento. 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 domande e risposte di Microsoft Learn. 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
Error | 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': left of '::' must be a class/struct/union |
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' illegale nell'elenco delle classi di base; ignorato |
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': parametro predefinito mancante per il parametro |
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 | 'type derived_class::function': override del tipo restituito della funzione virtuale differisce da 'type base_class::function' |
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 | 'type1 class::function': la funzione di overload è diversa solo dal tipo restituito da 'type2 class::function' |
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': ref-qualifier is illegal for constructors/destructors |
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 | 'destructor': 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' puntatore 'this' non valido 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