Condividi tramite


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 dispidoggetto , '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