Avvisi del compilatore C/C++ da C4800 a C4999
Gli articoli di questa sezione descrivono i messaggi di avviso del compilatore C4800-C4999 di Microsoft C/C++.
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 avviso
Avviso | Messaggio |
---|---|
Avviso del compilatore (livello 4, disattivato) C4800 | Conversione implicita da 'type' a bool . Possibile perdita di informazioni |
Avviso del compilatore C4801 | La restituzione per riferimento non è verificabile: messaggio |
Avviso del compilatore (livello 1) C4803 | 'method': il metodo raise ha una classe di archiviazione diversa da quella dell'evento 'event' |
Avviso del compilatore (livello 1) C4804 | 'operation': uso non sicuro del tipo 'bool ' nell'operazione |
Avviso del compilatore (livello 1) C4805 | 'operation': combinazione unsafe di tipo 'type1' e tipo 'type2' nell'operazione |
Avviso del compilatore (livello 1) C4806 | 'operation': operazione unsafe: nessun valore di tipo 'type1' alzato di livello al tipo 'type2' può essere uguale alla costante specificata |
Avviso del compilatore (livello 1) C4807 | 'operation': combinazione non sicura di tipo 'type1' e campo di bit con segno di tipo 'type2' |
Avviso del compilatore (livello 1) C4808 | case 'value' non è un valore valido per switch la condizione di tipo 'bool ' |
Avviso del compilatore (livello 1) C4809 | switch l'istruzione ha un'etichetta 'default ' ridondante; vengono date tutte le etichette 'case ' possibili |
Avviso del compilatore (livello 1) C4810 | valore di pragma pack(show) == n |
Avviso del compilatore (livello 1) C4811 | valore del pragma conform(forScope, show) == valore |
Avviso del compilatore (livello 1) C4812 | stile di dichiarazione obsoleto: usare 'new_syntax' |
Avviso del compilatore (livello 1) C4813 | 'function': una funzione friend di una classe locale deve essere stata dichiarata in precedenza |
Avviso del compilatore (livello 4) C4815 | 'object name': matrice di dimensioni zero nell'oggetto stack non avrà elementi (a meno che l'oggetto non sia un'aggregazione che è stata inizializzata) |
Avviso del compilatore (livello 4) C4816 | 'param': il parametro ha una matrice di dimensioni zero che verrà troncata (a meno che l'oggetto non venga passato per riferimento) |
Avviso del compilatore (livello 1) C4817 | 'member': uso non valido di '.' per accedere a questo membro; il compilatore sostituito con '->' |
Avviso del compilatore (livello 1) C4819 | Il file contiene un carattere che non può essere rappresentato nella tabella codici corrente (numero). Salvare il file in formato Unicode per evitare la perdita di dati |
Avviso del compilatore (livello 4, off) C4820 | Riempimento dei byte 'byte' aggiunto dopo il costrutto 'member_name' |
Avviso del compilatore (livello 1) C4821 | Impossibile determinare il tipo di codifica Unicode. Salvare il file con firma (BOM) |
Avviso del compilatore (livello 1, off) C4822 | 'member function': la funzione membro della classe locale non ha un corpo |
Avviso del compilatore (livello 3) C4823 | 'function': usa puntatori di blocco, ma la semantica di rimozione non è abilitata. Prendere in considerazione l'uso di /EHa |
Avviso del compilatore (livello 2, off) C4826 | La conversione da 'type1' a 'type2' è estesa per il segno. Ciò può causare un comportamento di runtime imprevisto. |
Avviso del compilatore (livello 3) C4827 | Un metodo 'ToString ' pubblico con 0 parametri deve essere contrassegnato come virtual e override |
Avviso del compilatore (livello 1) C4828 | Il file contiene un carattere a partire dall'offset 0xHexOffset non valido nel set di caratteri di origine corrente (tabella codici della tabella codici). |
Avviso del compilatore (livello 1) C4829 | È possibile che i parametri non corretti funzionino main . Prendere in considerazione 'int main(Platform::Array<Platform::String^>^ argv) ' |
Avviso del compilatore (livello 1) C4834 | eliminazione del valore restituito della funzione con l'attributo 'nodiscard' |
Avviso del compilatore (livello 1) C4835 | 'variable': l'inizializzatore per i dati esportati non verrà eseguito fino a quando il codice gestito non viene eseguito per la prima volta nell'assembly host |
Avviso del compilatore (livello 4, off) C4837 | trigrafo rilevato: '?? character' sostituito da 'character' |
Avviso del compilatore (livello 1) C4838 | la conversione da 'type_1' a 'type_2' richiede una conversione verso un tipo di dati più piccolo |
Avviso del compilatore (livello 3) C4839 | uso non standard della classe 'type' come argomento di una funzione variadic |
Avviso del compilatore (livello 4) C4840 | uso non portabile della classe 'type' come argomento di una funzione variadic |
Avviso del compilatore (livello 4, disattivato) C4841 | estensione non standard usata: designatore membro composto usato in offsetof |
Avviso del compilatore (livello 4, off) C4842 | Il risultato di 'offsetof ' applicato a un tipo che usa più ereditarietà non è garantito che sia coerente tra le versioni del compilatore |
Avviso del compilatore (livello 4) C4843 | 'type1': un gestore eccezioni di riferimento alla matrice o al tipo di funzione non è raggiungibile, usare invece 'type2' |
Avviso del compilatore (livello 1) C4844 | 'export module module_name ; ' è ora la sintassi preferita per dichiarare un'interfaccia del modulo |
Avviso del compilatore (livello 4) C4845 | '__declspec(no_init_all) ' viene ignorato se '/d1initall[0|1|2|3] ' non è stato specificato nella riga di comando |
Avviso del compilatore (livello 4) C4846 | 'value' non è un argomento valido per '/d1initall ': flag della riga di comando ignorato |
Avviso del compilatore (livello 4) C4847 | '__declspec(no_init_all) ' può essere applicato solo a una funzione, a un tipo di classe o a una variabile locale: ignorato |
Avviso del compilatore (livello 1) C4848 | il supporto per l'attributo standard 'no_unique_address ' in C++17 e versioni precedenti è un'estensione del fornitore |
Avviso del compilatore (livello 1) C4849 | Clausola 'clause' openMP ignorata nella direttiva 'directive' |
Avviso del compilatore (livello 1, errore) C4854 | Il puntatore Null di binding dereferenced a reference ha un comportamento non definito |
Avviso del compilatore (livello 1, off) C4855 | L'acquisizione implicita di '' tramite 'this [=] ' è deprecata in 'version' |
Avviso del compilatore (livello 4) C4856 | 'value' non è un argomento valido per '/d1initAll:FillPattern ' (il valore deve essere compreso tra 0 e 255). Flag della riga di comando ignorato |
Avviso del compilatore (livello 1) C4857 | La modalità C++/CLI non supporta versioni C++ più recenti di C++17; impostazione della lingua su /std:c++17 |
Avviso del compilatore (livello 1) C4858 | eliminazione del valore restituito: nome della funzione |
Avviso del compilatore (livello 4) C4859 | 'value' non è un argomento valido per '/presetWarn ': deve essere un valore > decimale 0. Flag della riga di comando ignorato |
Avviso del compilatore (livello 4) C4860 | 'object name': compilatore zero inizializzato 'number' byte di archiviazione |
Avviso del compilatore (livello 4) C4861 | compilatore zero byte inizializzati 'number' di archiviazione |
Avviso del compilatore (livello 4) C4866 | il compilatore potrebbe non applicare l'ordine di valutazione da sinistra a destra per la chiamata a operator_name |
Avviso del compilatore (livello 1, errore) C4867 | 'function': function call missing argument list; use 'call' to create a member |
Avviso del compilatore (livello 4) C4868 | Il compilatore 'file(line_number)' potrebbe non applicare l'ordine di valutazione da sinistra a destra nell'elenco di inizializzazione con parentesi graffa |
Avviso del compilatore (livello 3) C4869 | 'nodiscard ' può essere applicato solo a classi, enumerazioni e funzioni |
Avviso del compilatore (livello 2) C4872 | divisione a virgola mobile per zero rilevata durante la compilazione del grafico delle chiamate per at concurrency::parallel_for_each : 'location' |
Avviso del compilatore (livello 1) C4880 | cast da 'const type_1' a 'type_2': il cast della constness da un puntatore o un riferimento può comportare un comportamento non definito in una funzione con restrizioni amp |
Avviso del compilatore (livello 4) C4881 | il costruttore e/o il distruttore non verranno richiamati per tile_static la variabile 'variable-name' |
Avviso del compilatore (livello 1) C4882 | il passaggio di funtori con operatori di chiamata non const a concurrency::parallel_for_each è deprecato |
Avviso del compilatore C4883 | 'nome funzione': le dimensioni della funzione eliminano le ottimizzazioni |
Avviso del compilatore C4900 | Mancata corrispondenza tra 'tool1' versione 'version1' e 'tool2' versione 'version2' |
Avviso del compilatore (livello 1, disattivato) C4905 | wide string literal cast to 'LPSTR ' |
Avviso del compilatore (livello 1, disattivato) C4906 | cast letterale stringa su 'LPWSTR ' |
Avviso del compilatore (errore) C4907 | non è possibile specificare più convenzioni di chiamata; verrà usato l'ultimo dato |
Avviso del compilatore (livello 1) C4910 | '<identifier>: '__declspec(dllexport)' e 'extern' sono incompatibili in un'istanza esplicita |
Avviso del compilatore (livello 1) C4912 | 'attribute': l'attributo ha un comportamento non definito in un tipo definito dall'utente annidato |
Avviso del compilatore (livello 4) C4913 | l'operatore binario definito dall'utente ', ' esiste, ma nessun overload potrebbe convertire tutti gli operandi, l'operatore binario predefinito predefinito ', ' usato |
Avviso del compilatore (livello 1) C4916 | per avere un dispid oggetto , 'description': deve essere introdotto da un'interfaccia |
Avviso del compilatore (livello 1, disattivato) C4917 | 'declarator': un GUID può essere associato solo a una classe, un'interfaccia o uno spazio dei nomi |
Avviso del compilatore (livello 4) C4918 | 'character': carattere non valido nell'elenco di ottimizzazione pragma |
Avviso del compilatore (livello 1) C4920 | membro enum-name member_1 value_1= già visto nell'enumerazione nome enumerazione come member_2 value_2= |
Avviso del compilatore (livello 3) C4921 | 'description': il valore dell'attributo 'attribute' non deve essere moltiplicato |
Avviso del compilatore (livello 1) C4925 | 'method': il metodo dispinterface non può essere chiamato dallo script |
Avviso del compilatore (livello 1) C4926 | 'identifier': il simbolo è già definito: attributi ignorati |
Avviso del compilatore (livello 1) C4927 | conversione illegale; è stata applicata in modo implicito più di una conversione definita dall'utente |
Avviso del compilatore (livello 1, disattivato) C4928 | inizializzazione di copia non valida; sono state implicitamente applicate più conversioni definite dall'utente |
Avviso del compilatore (livello 1) C4929 | 'file': typelibrary contiene un'unione; ignorando il qualificatore 'embedded_idl' |
Avviso del compilatore (livello 1) C4930 | 'prototype': funzione prototipo non chiamata (è stata prevista una definizione di variabile?) |
Avviso del compilatore (livello 4, off) C4931 | si presuppone che la libreria dei tipi sia stata compilata per i puntatori a bit numerici |
Avviso del compilatore (livello 4) C4932 | __identifier( identificatore e __identifier( identificatore) ) sono indistinguishable |
Avviso del compilatore (livello 1) C4934 | '__delegate(multicast) ' è deprecato, usare invece '__delegate ' |
Avviso del compilatore (livello 1) C4935 | identificatore di accesso all'assembly modificato da 'access' |
Avviso del compilatore (livello 1, errore) C4936 | questo __declspec è supportato solo quando viene compilato con /clr o /clr:pure |
Avviso del compilatore (livello 4) C4937 | 'text1' e 'text2' sono indistinguibili come argomenti di 'direttiva' |
Avviso del compilatore (livello 4) C4938 | 'var': la variabile di riduzione a virgola mobile può causare risultati incoerenti in /fp:strict o #pragma fenv_access |
Avviso del compilatore C4939 | #pragma vtordisp è deprecato e verrà rimosso in una futura versione di Visual C++ |
Avviso del compilatore (livello 1) C4944 | 'symbol': impossibile importare il simbolo da 'assembly1': come 'symbol' esiste già nell'ambito corrente |
Avviso del compilatore (livello 1) C4945 | 'symbol': impossibile importare il simbolo da 'assembly1': come 'symbol' è già stato importato da un altro assembly 'assembly2' |
Avviso del compilatore (livello 1, off) C4946 | reinterpret_cast usato tra classi correlate: 'class1' e 'class2' |
Avviso del compilatore (livello 1) C4947 | 'type_or_member': contrassegnato come obsoleto |
Avviso del compilatore (livello 2) C4948 | il tipo restituito di 'funzione di accesso' non corrisponde all'ultimo tipo di parametro del setter corrispondente |
Avviso del compilatore (livello 1 e livello 4) C4949 | pragmas 'managed ' e 'unmanaged ' sono significativi solo quando vengono compilati con '/clr[:option] ' |
Avviso del compilatore (livello 1, errore) C4950 | 'type_or_member': contrassegnato come obsoleto |
Avviso del compilatore (livello 1) C4951 | 'function' è stato modificato dopo la raccolta dei dati del profilo, i dati del profilo di funzione non sono stati usati |
Avviso del compilatore (livello 1) C4952 | 'function': nessun dato del profilo trovato nel database del programma 'pgd-file' |
Avviso del compilatore (livello 1) C4953 | Inlinee 'function' è stato modificato dopo la raccolta dei dati del profilo, i dati del profilo non vengono usati |
Avviso del compilatore C4954 | 'function': non profilato (contiene __int64 l'espressione switch) |
Avviso del compilatore C4955 | 'import2': importazione ignorata; già importata da 'import1' |
Avviso del compilatore (livello 1, errore) C4956 | 'type': questo tipo non è verificabile |
Avviso del compilatore (livello 1, errore) C4957 | 'cast': cast esplicito da 'cast_from' a 'cast_to' non è verificabile |
Avviso del compilatore (livello 1, errore) C4958 | 'operation': l'aritmetica del puntatore non è verificabile |
Avviso del compilatore (livello 1, errore) C4959 | impossibile definire il tipo non gestito 'type' in /clr:safe perché l'accesso ai relativi membri produce codice non verificabile |
Avviso del compilatore (livello 4) C4960 | 'function' è troppo grande per essere profilato |
Avviso del compilatore (livello 1) C4961 | Nessun dato del profilo è stato unito in "pgd-file", ottimizzazioni guidate dal profilo disabilitate |
Avviso del compilatore (livello 4, off) C4962 | 'function': ottimizzazioni guidate dal profilo disabilitate perché le ottimizzazioni causavano la incoerenza dei dati del profilo |
Avviso del compilatore (livello 1) C4963 | 'description': nessun dato del profilo trovato; diverse opzioni del compilatore sono state usate nella compilazione instrumentata |
Avviso del compilatore (livello 1) C4964 | Non sono state specificate opzioni di ottimizzazione; le informazioni sul profilo non verranno raccolte |
Avviso del compilatore (livello 1) C4965 | casella implicita di integer 0; usare nullptr o cast esplicito |
Avviso del compilatore (livello 1) C4966 | 'function' ha __code_seg un'annotazione con nome di segmento non supportato, annotazione ignorata |
Avviso del compilatore C4970 | costruttore delegato: l'oggetto di destinazione viene ignorato perché 'type' è statico |
Avviso del compilatore (livello 1) C4971 | Ordine degli argomenti: <oggetto di destinazione>, <funzione> di destinazione per il costruttore delegato deprecato, usare la <funzione> di destinazione, <target object=""> |
Avviso del compilatore (livello 1, errore) C4972 | La modifica o il trattamento diretto del risultato di una operazione di unboxing come lvalue non è verificabile |
Avviso del compilatore (livello 1) C4973 | 'symbol': contrassegnato come deprecato |
Avviso del compilatore (livello 1) C4974 | 'symbol': contrassegnato come deprecato |
Avviso del compilatore (livello 1) C4975 | modopt '[modificatore]' è stato ignorato per il parametro formale 'parameter' |
Avviso del compilatore (livello 1) C4976 | valore non valido 'value' per '/W '; presupponendo '1' |
Avviso del compilatore (livello 3) C4981 | Warbird: funzione 'function' contrassegnata come __forceinline non inlined perché contiene la semantica delle eccezioni |
Avviso del compilatore (livello 3) C4983 | '/analyze:sarif:hashname' ignorato perché l'argomento di '/analyze:log' è un singolo file anziché una directory |
Avviso del compilatore C4984 | 'if constexpr ' è un'estensione del linguaggio C++17 |
Avviso del compilatore (livello 4) C4985 | 'symbol_name': attributi non presenti nella dichiarazione precedente. |
Avviso del compilatore (livello 4, off) C4986 | 'declaration': la specifica dell'eccezione non corrisponde alla dichiarazione precedente |
Avviso del compilatore (livello 4, off) C4987 | estensione non standard usata: 'throw (...) ' |
Avviso del compilatore (livello 4, off) C4988 | 'variable': variabile dichiarata all'esterno della classe/ambito della funzione |
Avviso del compilatore (livello 4) C4989 | 'type': il tipo ha definizioni in conflitto. |
Avviso del compilatore (livello 3) C4990 | Warbird: messaggio |
Avviso del compilatore (livello 3) C4991 | Warbird: funzione 'function' contrassegnata come __forceinline non inlined perché il livello di protezione di inlinee è maggiore dell'elemento padre |
Avviso del compilatore (livello 3) C4992 | Warbird: funzione 'function-name' contrassegnata come __forceinline non inlined perché contiene assembly inline che non possono essere protetti |
Avviso del compilatore (livello 3) C4995 | 'function': nome contrassegnato come #pragma deprecato |
Avviso del compilatore (livello 3) C4996 | 'depreated-declaration': deprecation-message (o "è stato dichiarato deprecato") |
Avviso del compilatore (livello 1) C4997 | 'class': la coclasse non implementa un'interfaccia COM o una pseudo-interfaccia |
Avviso del compilatore (livello 1) C4998 | ATTESA NON RIUSCITA: aspettative(valore) |
Vedi anche
Errori e avvisi del compilatore C/C++ e degli strumenti di compilazione
Avvisi del compilatore C4000 - C5999