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.
Siamo lieti di annunciare la disponibilità dell'aggiornamento di aprile Visual Studio 2026. Questa versione segna l'inizio di una nuova era per Visual Studio con un'integrazione approfondita della piattaforma di intelligenza artificiale, concetti fondamentali più forti e prestazioni migliorate.
Scaricare Visual Studio 2026 Insider per godere di queste nuove funzionalità e miglioramenti.
Versione 11716.218
Data di rilascio: 21 aprile 2026
| Correzioni di bug principali | Dalla comunità |
|---|---|
| F# La stringa vuota corrispondente nelle quotazioni di codice causa FS0452 | ticket di feedback |
| Il Copilot di GitHub per l'estensione Query Azure Resource Graph non riesce | ticket Feedback ticket |
Funzionalità
Data di rilascio: 14 aprile 2026.
IDE
Sistema temi scuri/chiari 📣
Commuta automaticamente Visual Studio temi quando il sistema si sposta tra la modalità Chiaro e Scuro, mantenendo l'IDE sincronizzato con l'ambiente.
Potresti preferire un tema più chiaro e a contrasto più alto durante il giorno e un tema più scuro di notte. Visual Studio ora passa automaticamente tra i temi Light e Dark selezionati quando l'impostazione di sistema cambia, mantenendo l'IDE sincronizzato con l'ambiente.
Come usarlo
- Aprire Strumenti → Opzioni → Ambiente → Esperienza visiva
- Impostare Tema colore su Usa impostazioni di sistema
- Selezionare un tema chiaro di sistema e un tema scuro di sistema
Visual Studio applica automaticamente il tema corrispondente quando cambia il tema Windows.
![]()
📣 Consulta il ticket di funzionalità per condividere il tuo feedback e continuare la conversazione.
GitHub Copilot
View e gestire le competenze dell'agente
Sfoglia, modifica e individua tutte le capacità dell'Agente Copilot dalla finestra di chat.
È ora possibile visualizzare tutte le competenze dell'agente in un'unica posizione. Facendo clic sull'icona degli strumenti nell'angolo in basso a destra della finestra della chat, è possibile aprire un pannello di competenze dedicato che elenca ogni competenza individuata dall'area di lavoro e dal profilo utente, semplificando la visualizzazione immediata delle funzionalità disponibili.
Dal pannello è possibile gestire le competenze direttamente senza lasciare Visual Studio:
- Modificare una competenza : fare clic sul menu a tre punti (⋯) su qualsiasi competenza per aprirla e modificarla direttamente in Visual Studio.
- Aprire il percorso del file : usare lo stesso menu per passare direttamente al file di competenza su disco.
- Cercare una competenza : usare la barra di ricerca nella parte superiore per trovare rapidamente una competenza specifica in base al nome o alla parola chiave.
![]()
Questo si basa sul supporto delle competenze dell'agente introdotto in precedenza, offrendo un modo più semplice per esplorare e mantenere le proprie competenze. Provalo e condividi i tuoi commenti e suggerimenti.
Diff di riepilogo per le modifiche di Copilot
Visualizzare tutte le modifiche Copilot in più file in un'unica visualizzazione di riepilogo con controlli di accettazione e annullamento granulari.
Quando Copilot modifica più file, non è più necessario esaminarne uno separatamente. La nuova visualizzazione diff riepilogativa multi-file mostra tutte le modifiche in un'unica posizione.
Fare clic sul pulsante Apri riepilogo modifiche nel set di lavoro di Copilot Chat dopo che Copilot ha terminato la modifica. Verrà visualizzata una singola scheda con tutti i file modificati e le relative differenze.
![]()
È possibile accettare o annullare modifiche a livelli diversi:
- Su tutti i file contemporaneamente
- Per ogni file
- Per singolo segmento diff
È anche possibile aprire qualsiasi file separatamente per visualizzarne il contesto completo.
![]()
Usare i controlli nell'angolo superiore sinistro per:
- Comprimere tutto il contenuto del file per visualizzare solo le intestazioni di file per una rapida panoramica
- Spostarsi tra blocchi diff usando i pulsanti successivi e precedenti per passare rapidamente alle modifiche
Questa visualizzazione semplifica la comprensione delle modifiche apportate da Copilot nel tuo codice e offre un controllo preciso su quali modifiche mantenere.
Indicatore della finestra di contesto
Visualizza quanta parte del contesto Copilot sta utilizzando e ottimizzalo con un riepilogo a un clic.
Quando si chatta con Copilot, tiene traccia della cronologia delle conversazioni, dei file allegati e di altro contesto per fornire risposte pertinenti. Questa operazione è denominata finestra di contesto e ha un limite. Una volta riempito, Copilot potrebbe perdere traccia delle parti precedenti della conversazione.
È ora possibile visualizzare esattamente la quantità di tale finestra di contesto usata con il nuovo indicatore della finestra di contesto.
Cercare l'icona dell'anello nell'angolo superiore destro della casella di richiesta Copilot Chat. Questo mini grafico ad anello si riempie man mano che cresce la conversazione, mostrando a colpo d'occhio quanto contesto è stato utilizzato.
Fare clic sull'indicatore per visualizzare:
- Percentuale esatta del contesto usato
- Suddivisione dettagliata degli elementi che contribuiscono al contesto
- Pulsante Riepiloga conversazione per compattare la conversazione e liberare spazio
![]()
Quando il contesto sta esaurendo, fare clic su Riepiloga per comprimere le parti precedenti della conversazione. In questo modo è possibile continuare a chattare senza perdere contesto importante o avviare una nuova conversazione.
![]()
Pianificare prima di eseguire la compilazione con la modalità pianificazione
Creare e scorrere i piani di implementazione prima di apportare modifiche al codice.
A volte si vuole riflettere su un approccio prima di iniziare a scrivere codice. La nuova modalità chat Planning consente di collaborare con Copilot in un piano di implementazione, senza apportare modifiche alla codebase.
Come funziona
![]()
Quando si seleziona la modalità Planning, Copilot segue un processo in due passaggi:
- Explore e chiarire: Copilot usa strumenti di sola lettura per comprendere la codebase e porre domande chiare. Per attività semplici, viene elaborato immediatamente un piano.
- Raccolta e perfezionamento: Copilot crea un piano di implementazione dettagliato che è possibile esaminare, discutere e perfezionare insieme.
![]()
Quando si è pronti, fare clic su Implementa piano per passare alla modalità Agente per l'esecuzione.
![]()
I piani vengono salvati come markdown
Copilot salva ogni progetto come file markdown nel repository in
.copilot/plans/plan-{title}.md. Questo file è l'unica fonte di verità. È possibile modificarlo direttamente nell'editor o perfezionarlo tramite chat. Copilot rileva le modifiche e mantiene sincronizzato il piano.Quando usare la modalità pianificazione
- Funzionalità di grandi dimensioni : suddividere il lavoro complesso in passaggi chiari prima di scrivere codice.
- Cobase di codice sconosciute - Consentire Copilot esplorare e spiegare prima di proporre modifiche.
- Collaborazione in team - Condividere i piani come file markdown da rivedere prima dell'implementazione
Strumenti Git
Differenze di riepilogo su più file 📣
Visualizzare le modifiche dei file in un diff unificato per la comprensione rapida.
Il diff riassuntivo multi-file visualizza tutte le righe modificate da più file in una vista unificata, in modo da poter comprendere rapidamente l'ambito di un commit o richiesta di pull senza dover navigare tra i file.
![]()
Il pulsante Di riepilogo Apri modifiche verrà visualizzato in diverse posizioni:
- Modifiche Git
- Dettagli del commit in Git → Visualizza la Cronologia del Branch
- Richieste pull nella finestra Visualizza repository Git →
L'elenco delle richieste pull è attualmente disponibile solo in Visual Studio Insiders con la funzionalità di anteprima Visualizza richieste pull per un repository Git.
![]()
📣 Consulta il ticket di funzionalità per condividere il tuo feedback e continuare la conversazione.
Aggiungi commit a Copilot Chat
Allega il contesto del commit a Copilot Chat direttamente dall'IDE.
Stai esaminando un commit e vuoi che Copilot ti aiuti a comprenderlo, individuare i problemi o basare nuove modifiche su di esso? Invece di cercare l'ID commit e incollarlo in Chat, è ora possibile fare clic con il pulsante destro del mouse su un commit e aggiungerlo direttamente come contesto in Copilot Chat.
È possibile trovare questo comando nelle aree seguenti:
- Cronologia Git (cronologia dei rami di visualizzazione Git>)
- Cronologia file (fare clic con il pulsante destro del mouse su un file in Esplora soluzioni, quindi Git > Visualizza cronologia
- Annota (Blame) (fare clic con il pulsante destro del mouse nell'editor, quindi Git > Annota (Blame))
È anche possibile selezionare più commit per allegarli a una chat contemporaneamente.
![]()
Copilot riceve il commit come contesto, quindi è possibile porre domande come spiega questa modifica, questo introduce eventuali problemi o scrivi una modifica simile per quest'altro file.
![]()
Le istruzioni del messaggio di commit sono state spostate
Le istruzioni personalizzate del messaggio Commit usano ora il file di istruzioni Copilot anziché l'impostazione Visual Studio.
Se hai utilizzato l'input di testo delle istruzioni personalizzate del messaggio Commit sotto l'impostazione GitHub → Copilot → Source Control Integration per adattare i messaggi di commit generati da Copilot, tale impostazione non sarà più applicabile. In futuro, le istruzioni dei messaggi di commit vengono gestite tramite il file di istruzioni personalizzate Copilot.
In questo modo vengono fornite istruzioni per i messaggi di commit in linea con altre istruzioni personalizzate Copilot nel repository, mantenendo tutto in un'unico posto.
Configurare istruzioni personalizzate
Aggiungere le istruzioni del messaggio di commit al file di istruzioni Copilot del repository. Per informazioni dettagliate sull'installazione completa, vedere Aggiungere le istruzioni del repository.
![]()
Visualizzare il codice con l'agente Git in Copilot Chat
Avvia una revisione del codice da Copilot Chat e vedi i risultati nell'esperienza di revisione di Visual Studio.
È ora possibile esaminare il codice tramite l'agente Git in Copilot Chat. Passa all'agente Git e chiedigli di esaminare le tue modifiche.
![]()
L'agente analizza le modifiche di cui non è stato eseguito il commit usando GitHub Copilot Revisione del codice e visualizza i commenti in linea nell'editor e nella visualizzazione Git Changes. È quindi possibile continuare la conversazione in chat per discutere i risultati, chiedere spiegazioni o lavorare tramite modifiche suggerite.
![]()
Per altre informazioni sull'esperienza di revisione del codice, vedere Visualizzare le modifiche locali con Copilot Chat.
C++
Strumenti di compilazione MSVC v14.51
Miglioramento del supporto, delle prestazioni e di molte correzioni di bug in C++23.
Microsoft C++ (MSVC) Build Tools versione 14.51 è ora disponibile ed è installato per impostazione predefinita con i carichi di lavoro di gioco e desktop C++. Per verificare se è installato, assicurarsi semplicemente che uno o entrambi i componenti siano controllati nel programma di installazione:
- Strumenti di compilazione MSVC per x64/x86 (versione più recente)
- Strumenti di compilazione MSVC per ARM64/ARM64EC (versione più recente)
È anche possibile selezionare uno dei componenti etichettati con il numero di versione v14.51 per aggiungere l'installazione a questa versione.
![]()
Il numero di versione stampato da cl.exe e link.exe sarà almeno 14.51.36231.
La versione stabile della versione 14.51 riceverà 9 mesi di correzioni di manutenzione, come descritto in Nuova cadenza di rilascio e ciclo di vita del supporto per Microsoft C++ Build Tools.
Per un elenco completo delle novità, vedere di seguito.
Conformità agli standard C++
Il team front-end ha continuato a implementare le funzionalità C++23 e C++20 e a risolvere i problemi di conformità:
- Implementazioni di C++23: Per informazioni dettagliate, vedere il post di blog C++23 Support in MSVC Build Tools 14.51 (Supporto di C++23 in MSVC Build Tools 14.51 ).
- Miglioramenti di Consteval: Numerose correzioni alla gestione delle funzioni
consteval, constexprnew/deletenei moduli, matrici di supporto per le liste di inizializzazione, comportamento/experimental:constevalVfuncVtableora abilitato per impostazione predefinita, e migliore diagnostica degli errori per le espressioni costanti non riuscite.- Miglioramenti di Coroutine: Il refactoring delle risorse globali correlate alla coroutine e la deprecazione delle intestazioni di coroutine sperimentali.
- Modernizzazione del parser: Il parser di discesa ricorsivo ora gestisce
[[attributes]], con miglioramenti continui al ripristino degli errori e alla rimozione delle funzioni di accesso ai token legacy.- Miglioramenti del linguaggio C: Aggiunto il
_Atomicsupporto per i qualificatori, rimozione della diagnostica errata per i membri di matrice flessibili C99 e aggiunto__typeof__il supporto per i tipi di funzione.Generazione di codice
L'ottimizzatore backend ha ricevuto investimenti significativi in molte aree:
- Ottimizzazioni guidate dei profili basate su campioni: Supporto per ottimizzazioni guidate dei profili basate su esempio con strumenti di supporto. Altri dettagli da seguire in un post di blog futuro.
- Miglioramenti dell'ottimizzazione di Single-Assignment statici (SSA): Implementazione di decine di nuovi modelli di semplificazione algebrica, tra cui modelli di operatore ternari, modelli aritmetici e min/max.
- Eliminazione della sottoespressione comune (CSE): Miglioramento del CSE dei caricamenti di
[x + C]tramite join if/else, archiviazioni ridondanti e miglioramento dei controlli di aliasing multibyte.- Sostituzione scalare delle aggregazioni (SROA): Scomposizione più aggressiva delle strutture.
- Ottimizzazioni dei cicli: Correzioni relative al segno LFTR (Linear Function Test Replace) e ottimizzazioni dei cicli contati quando si utilizza l'induzione principale dopo il ciclo.
- Integrazione: Estensione del limitato inline del sito di chiamata e miglioramento della propagazione delle informazioni sul tipo di parametro durante l'integrazione.
- Propagazione della copia: Miglioramenti multipli per la propagazione della copia per costanti integer e copie sequenziali.
- Riduzione della forza: È stata implementata una riduzione delle conversioni come ottimizzazione della riduzione della forza.
- Predicato e threading del salto: Miglioramenti alle ottimizzazioni basate su predicato per eliminare le verifiche dei limiti, incluso un migliore utilizzo dei predicati dai pattern minimi.
- Stack Layout: Il compilatore ora preferisce eseguire il push di registri salvati dal chiamante nello stack anziché utilizzare gli slot shadow, riducendo il sovraccarico del prologo/epilogo della funzione.
- PGO: Miglioramento dei compromessi per dimensione/velocità per funzione per attenuare i profili non rappresentativi e i miglioramenti di taglio PGO.
- Limita puntatori: Aggiunta del supporto per limitare la semantica del puntatore per abilitare ottimizzazioni di aliasing aggiuntive.
- Ottimizzazioni per l'abbinamento di pattern: Nuovi modelli per la generazione
MSUB/MADD,ADC/SBBper aggiunta/sottrazione condizionale e variantiCMOVE/NE.- Intel APX: Supporto preliminare di Intel APX (Advanced Performance Extensions) nella catena di strumenti MSVC. Altri dettagli da seguire.
ARM64 & SVE
- Supporto di SVE (estensione vettoriale scalabile): Nuova funzionalità principale che porta ARM SVE a MSVC, tra cui il supporto dei tipi front-end per i tipi scalari SVE e aggregati, l'abbassamento intrinseco, la rimozione del registro salvata dal chiamato, il passaggio del parametro di funzione variadic, l'installazione dei file di intestazione e il supporto tryblock/funclet. Diverse correzioni per errori ICE ed errori di compilazione sono state apportate.
- Shrink Wrapping: Sono stati risolti più problemi, tra cui informazioni di annullamento dei frammenti solo epilogo, bug di generazione del codice con chkstk che interrompe X15, e regioni di shrink wrap multi-punto.
- Qualità del codice: Nuovi modelli per
CSEL pow2, 0 + ORR → CSET + ORR_SHIFT, ottimizzatiNEON_DUPR, rimossi modelli ridondantiNEON_INSRdopoNEON_DUPR, modelli ARM NEON per x264, miglioramenti della fusione delle istruzioni, ritipizzazione dei registri dopo globreg e messa a punto dell'allineamento delle funzioni.- DIA SDK: Supporto completo di SVE nell'interfaccia di debug, inclusi
RtlpGetSveContextPointerseIDiaStackWalkHelper3.SIMD & Vectorization
- Vettore SLP: Miglioramenti alla vettorizzazione SLP (Superword Level Parallelism):
- Vettorizzazione della riduzione scalare
- Supporto per istruzioni vettoriali generiche e sovradimensionate
- Ottimizzazione delle permutazioni e supporto per selezioni sovradimensionate
- Miglioramenti del vettorizzatore: L'innalzamento dei controlli di sovrapposizione dei puntatori nei cicli interni vettorializzati ai cicli padre, il supporto per il ciclo di conteggio dei caratteri, il supporto per l'accesso alla memoria non contiguo per i tipi di dati a 2 byte e l'ottimizzazione euristica per i cicli con bassa frequenza di iterazioni su ARM64.
- AVX/SSE: AVX512
memcpy/memset, AVX2 overridememcmp, AVX10.2 e modelli di maschera di bit vettorializzati per x264.Linker e PDB
- DIA: Sicurezza dell'inizializzazione di thread COM e supporto SVE.
- PDB Fuzzing: Attivazione del fuzzing PDB dai build notturni.
- SPGO: Ottimizzazioni guidate dei profili basate su campioni disponibili per l'uso.
Libreria standard (STL)
In GitHub, il repository microsoft/STL tiene traccia dello stato con un elevato livello di dettaglio. Vedere Changelog for MSVC Build Tools 14.51. Funzionalità rilevanti della libreria appena disponibili:
- P0429R9 -
<flat_map>- P1222R4 -
<flat_set>- P2255R2 - Tratti di tipo per rilevare l'associazione di riferimenti a temporanei
- P2590R2 - Gestione esplicita del ciclo di vita
- P2674R1 -
is_implicit_lifetimeAltre modifiche rilevanti:
- È stata apportata
<regex>una revisione massiccia per risolvere problemi di correttezza e prestazioni di lunga data che sono stati presenti sin dalla sua implementazione iniziale in VS 2008 SP1. Dopo quasi due decenni, gli overflow dello stack sono stati finalmente risolti!- Abbiamo continuato ad aggiungere e migliorare gli algoritmi STL con vettori SIMD, usando SSE4.2 e AVX2 per x64/x86 e (appena disponibile in MSVC Build Tools 14.51) usando NEON per ARM64/ARM64EC.
- Sono state implementate 18 risoluzioni dei problemi LWG.
- Sono state rimosse funzionalità non Standard deprecate a lungo termine, ad esempio TR1,
<hash_map>,<hash_set><experimental/filesystem>,stdext::checked_array_iterator, estdext::unchecked_array_iterator.Tutto questo è stato possibile grazie ai nostri incredibili collaboratori GitHub.
AddressSanitizer (ASan)
- Supporto ARM64: Miglioramento del supporto di ASan per ARM64 con pacchetti di librerie completi, correzioni di intercettazione e risoluzione dei falsi positivi.
- SanitizerCoverage: Correzione della gestione del blocklist, dei problemi di generazione del codice e delle dichiarazioni di inoltro per garantire che vengano richiamati gli inizializzatori sancov.
- Prestazione: Heap memorizzati nella cache per migliorare le prestazioni durante le operazioni di memoria shadow.
Moduli e IFC
- Aggiornamento della versione IFC: Il front-end MSVC genera file IFC in base alla versione 0.44 della specifica IFC.
- Correzione della concorrenza: Corretto un problema di concorrenza di tipo use-after-free nella risoluzione concorrenziale dei record di debug IFC.
Analisi statica
- Consolidamento espX: Unire EspX e le relative estensioni come CppCoreCheck in una singola DLL, semplificando la distribuzione.
- Correzioni di bug: Corrette segnalazioni errate dalla dereferenziazione della posizione imprecisa e diversi errori interni del compilatore (ICE) con /analyze.
ARM64EC & ARM64X
- Supporto coroutine: Correzione delle voci mancanti per i contorni coroutine e le funzioni di rampa.
- ICF: Ottimizzazione migliorata del folding COMDAT identico nei binari ARM64X.
- XMM volatile: Correzione dell'assegnazione volatile XMM per ARM64EC.
Diagnostica
- Correzione di C4319 che non viene generata durante la compilazione del codice C.
- Rimozione della diagnostica non corretta per i membri della matrice flessibile C99.
- Avviso C4789 migliorato per ridurre i falsi positivi.
Informazioni di debug
- Abilitazione dell'eliminazione delle informazioni di debug per ridurre le dimensioni del PDB.
Biglietti fissi
In questa versione sono stati risolti i problemi segnalati dai clienti seguenti:
- __builtin_bit_cast errore interno del compilatore
- typeof non funziona con i tipi di funzione
- Must_inspect_result falso positivo (C++)
- _statusfp programmato prima delle operazioni in virgola mobile
- "LINK: errore LNK2001: simbolo esterno non risolto" dopo l'aggiornamento a VS 17.14.5
- "REX. B NOP" viene interpretato come "XCHG EAX,R8d" dalla CPU, ma VS 2026 lo disassembla come NOP
- [/permissive-] e il modello implica l'errore C3688: suffisso letterale non valido '_s'
- [17.14.15] [Feedback] Debug dinamico C++ inizializza erroneamente variabili locali statiche
- [ARM64] Sottrazione e confronto dei registri W di ULONGLONG
- [C++] espressione logica ternaria min/max difettosa in combinazione con promozioni di tipo intero
- [Moduli C++20] Errore LNK2001 durante l'importazione di un membro di classe/struct statico da un modulo da una DLL
- [Neg] [considera come non valido] Puntatore a membro della classe base come argomento del template
- [Neg][std:c++20] L'eliminazione di un operatore specifico della classe basato su modelli new non viene rilevata dai vincoli
- [Neg][std:c++latest] È possibile modificare un'acquisizione in un'espressione lambda non modificabile tramite C++ deducendo questo
- [permissivo-] Nessuna copiaElision eseguita durante l'inizializzazione tramite l'elenco di inizializzatori
- [permissive-] std::enable_if errore di compilazione dopo l'aggiornamento dalla versione 17.13 alla versione 17.14
- [permissive-][Regression] Problema in condizioni specifiche con l'operatore modulo nel modello variadic con "/permissive-" dopo la versione 19.32.
- [permissive-][Regression] errore msvc C1001: Errore interno del compilatore (file del compilatore 'msc1.cpp', riga 1589)
- [Permissivo-][Regressione] Nessun ADL nell'inizializzatore di membro predefinito a causa di una funzione libera locale
- [Regressione] FUNCSIG è vuoto per un'espressione lambda automatica assegnata a std::function
- [Regressione] "avviso C5287: gli operandi sono tipi di enumerazione diversi" anche con un cast esplicito
- [Regression] C2106 '=': l'operando sinistro deve essere l-value Visual Studio 2026 Insiders [11206.111]
- [Regressione] cl: errore interno del compilatore in codice di manipolazione dei bit relativamente semplice
- [Regressione] La matrice di valori letterali composti vuoti causa un errore interno del compilatore
- [regressione] errore C2593 causato dall'operatore statico[] in modalità C++23
- [Regressione] Errore irreversibile C1001: Errore interno del compilatore
- [Regressione] Generazione di codice non corretta per &= nella versione 17.14
- [Regressione] Risultato matematico errato con boost::rational e google test
- [Regressione] Errore interno del compilatore in VS2022 17.10+
- [Regressione] Errore interno del compilatore quando si tenta di compilare un programma C++ semplice
- [regressione] l'acquisizione lambda per riferimento di oggetti non trasportabili non funziona a partire da MSVC17.4
- [Regressione] msdia140.dll ver 14.50.35719.0 CDiaSymbol::get_virtual restituisce sempre falso
- [Regressione] MSVC 19.44.35207.1 C2352 quando si chiama il metodo della classe base
- [Regressione] MSVC 19.51 miscompilas ffmpeg per arm64
- [Regressione] La sottrazione di puntatori MSVC 2026 di membri consecutivi di struttura con lo stesso tipo porta a un valore inatteso
- [Regressione] MSVC si arresta in modo anomalo quando in CTAD sono presenti almeno 65536 parametri di un pacchetto di parametri
- [Regressione] problemi con Visual Studio 2022 17.14.15 update - LINK: errore fatale LNK1000
- [Regressione] v.19.50 x64 Optimizer genera codice non corretto con /O2 e /EHs
- [Regression] Il compilatore di Visual Studio ottimizza erroneamente l'istruzione condizionale nel codice con i set di strumenti v143 e v145
- [Regressione] VS2026 genera codice FP errato
- [[Regression]Neg][std:c++latest] Lambda con la deduzione di questo parametro di tipo non correlato è consentito erroneamente
- [Regressione][Office] InitAll in VS2026 nella inizializzazione di un puntatore in un vettore
- [Regressione][std:c++20] La dichiarazione di tipo forward non funziona durante la specializzazione del tipo se il nome del tipo dichiarato in avanti è ambiguo
- [Regressione][std:c++20] ICE in CTAD per il modello di alias con
std::array- [Regressione][std:c++20] Errore interno del compilatore quando si usano tipi copiabili in modo condizionale
- [Regression][std:c++20] Rifiuta il nome di tipo qualificato valido che include lambda nel decltype
- [
Regressione][std:c++20] Silent Bad CodeGen: Regressione nel riordino costante della cattura di lambda (v143, v145) - [Regresso] ERRORE INTERNO DEL COMPILATORE: MSVC V19.50.35615 per x64
- [ssa-patterns-vect] Bug di ottimizzazione Arm64 per expf
- [std:c++17] Errore interno del compilatore quando si definisce il membro dati statico C++17 del modello e il relativo costruttore accetta determinati argomenti
- [std:c++20] "CL.exe" chiuso con codice -529706956.
- [std:c++20] [Regressione] rifiuta una chiamata di operatore valida
- [std:c++20] la guida alla deduzione del modello di alias non funziona in c++20
- [std:c++20] Un modello di funzione Friend inline non può accedere agli argomenti del modello di classe (C2065)
- [std:c++20] L'espressione di riduzione a sinistra binaria nel tipo restituito comporta un errore di compilazione
- [std:c++20] L'istanza esplicita di un modello di variabile C++ causa un errore interno del compilatore quando si utilizza un'intestazione precompilata
- [std:c++20] C++/CLI : lo spazio dei nomi inline non funziona
- [std:c++20] C++/CLI: ::typeid non può essere usato nei tipi predefiniti
- [std:c++20] C++20 richiede una clausola requires con parametro template non di tipo che genera incoerentemente un errore strano del compilatore
- [std:c++20] C++20: la compilazione di consteval non riesce
- [std:c++20] Bug del vincolo del parametro del modello costante, falso positivo C7602
- [std:c++20] Impossibile allocare memoria heap in fase di compilazione
- [std:c++20] Impossibile inoltrare dichiarare la classe nella partizione interna del modulo (C++20)
- [std:c++20] Impossibile passare una funzione consteval come argomento a un'altra funzione consteval
- [std:c++20] Impossibile usare un puntatore alla funzione immediata all'interno di un'espressione costante
- [std:c++20] La deduzione dell'argomento del modello di classe per il modello alias ha esito negativo
- [std:c++20] Il codice generato dal compilatore per determinate coroutine C++ genera avvisi imprevisti e fa riferimento a numeri di riga negativi
- L'espressione costante [std:c++20] non è considerata costante nella funzione immediata
- [std:c++20] Il codice consteval non viene compilato in MSVC
- [std:c++20] Errore C2100 non corretto per le espressioni lambda non generiche
- [std:c++20] Errore C2514: il modello di classe non può essere costruito
- [std:c++20] errore C7535 a causa del riferimento rvalue quando un costruttore delega a un altro costruttore
- [std:c++20] ICE durante l'indicizzazione in una matrice C multidimensionale NTTP su MSVC 14.44.35207
- [std:c++20] Se constexpr e require non verificano correttamente l'esistenza dei membri
- [std:c++20] L'inclusione di un'intestazione con #pragma system_header da una directory di inclusione esterna considera l'intera unità di conversione come intestazione esterna
- [std:c++20] Errore interno del compilatore (ICE) nella manipolazione di un puntatore a funzione immediata
- [std:c++20] Errore interno del compilatore quando si è specializzati in float
- [std:c++20] L'esecuzione di una chiamata alla funzione restituita di consteval lambda comporta l'errore C7595
- [std:c++20] MSVC non riesce a compilare l'espressione lambda del modello C++20 con l'identificatore consteval
- [std:c++20] MSVC deduplica erroneamente due diversi puntatori a membri (&Case01::a, &Case02::num) passati come parametri di modello non di tipo auto
- [std:c++20] MSVC rifiuta un programma valido che implica l'ereditarietà della funzione di conversione da un tipo di chiusura senza acquisizione
- [std:c++20] Nessun avviso C4706 per l'assegnazione a std::unqiue_ptr usato come condizione
- [std:c++20] La rimozione dei token segnaposto rimuove erroneamente gli spazi vuoti circostanti con /Zc:preprocessor
- [std:c++20] richiede un vincolo per una funzione membro tratta una chiamata di base come una chiamata statica
- [std:c++20] Danneggiamento dello stack di runtime segnalato con std::visit
- [std:c++20] source_location() restituisce un valore errato.
- [std:c++20] std::is_constructible fornisce una risposta errata per le matrici in C++20
- [std:c++20] std::source_information::current() restituisce un percorso diverso nel contesto consteval
- [std:c++20] std::source_location::current().function_name() produce una stringa vuota se usata come valore dell'argomento predefinito
- [std:c++20] Impossibile chiamare una funzione consteval da un'altra
- [std:c++20] L'uso di un nome qualificato dipendente come argomento predefinito per un parametro di tipo di modello di vincolo interrompe il compilatore MSVC
- [std:c++20] Quando _ASSERTE viene assegnata un'espressione con "", viene generato un errore interno del compilatore
- [std:c++20] Errore C3640 non corretto nell'ottenere un puntatore su una funzione virtuale pura
- [std:c++20] Chiamata una sovraccarica sbagliata a causa del riferimento rvalue che causa una ricorsione
- [std:c++20][Neg] Deduzione degli argomenti del modello di classe rileva un costruttore errato
- [[std:c++20]Neg][Regression] Regressione, l'accesso a un array sul risultato di un'operatore ternario restituisce erroneamente un prvalue
- [std:c++20][Regression] Moduli C++ 20 C1001: Errore interno del compilatore
- [std:c++20][Regression] C++: il riferimento alla matrice viene calcolato in modo non corretto, causando la violazione di accesso o l'accesso a un indirizzo di memoria errato
- [std:c++20][Regression] Impossibile specializzare parzialmente il modello nel modulo C++20
- [std:c++20][Regression] Impossibile specializzare il modello di funzione per il tipo astratto dopo la chiamata SFINAE al tipo
- [std:c++20][Regression] Errore interno del compilatore trovato in MSVC 14.44.35207
- [std:c++20][Regression] Errore interno del compilatore quando si usa un tipo restituito non valido in una funzione di conversione definita dall'utente modello
- [std:c++20][Regression] Errore interno del compilatore durante la compilazione del codice coroutine C++20
- [std:c++20][Regression] Operazione non valida: bug di ottimizzazione FP
- [c0>std:c++20][Regression] Errore spurio C2102 durante l'inizializzazione di un membro inline static constexpr con un elenco parziale di inizializzatori designati
- [std:c++20][Regression] I controlli di rafforzamento STL (_MSVC_STL_HARDENING) non sono eliminati dall'ottimizzazione (2)
- [std:c++20][regression] specializzazione della funzione modello e discrepanze del compilatore decltype
- [std:c++20][Regression] Regressione di VS 17.12, ICE con binding strutturati e lambda nell'istanza del template di variabile constexpr
- [std:c++20][Regression] Quando un'espressione generata viene visualizzata in un elenco di acquisizioni lambda,
noexcept(<lambda expression>)restituisce un risultato non corretto- [std:c++20][Regression]VS2026 regression: lambda non può accedere alla costante locale
- [[std:c++23preview]std:c++latest][Regression] Errore del compilatore spurio C2872 durante la compilazione con C++23preview
- [std:c++23preview]C++/CLI & C++23 - Matrici gestite multidimensionali non funzionano
- [std:c++latest] #pragma warning(disable) non funziona nei header annidati usati con le unità header
- [std:c++latest] Le unioni anonime negli spazi dei nomi senza nome sono necessarie in modo non corretto per l'uso statico
- [std:c++latest] Inizializzazione costante buggy __declspec(selectany) nei moduli C++
- [std:c++latest] Errore di compilazione dei moduli C++ quando si usa una dichiarazione using da un modulo diverso
- [std:c++latest] C2355 viene attivato erroneamente quando la classe locale è definita in una funzione membro statica
- [std:c++latest] L'errore C4389 viene attivato quando si confronta un membro del campo di bit di un bit con un valore bool
- [std:c++latest] Impossibile inizializzare una matrice con elementi costruiti consteval
- [std:c++latest] Arresto anomalo del compilatore con errore C1001 quando si usa CTAD in un tipo annidato con noexcept dipendente dal modello
- [std:c++latest] Errore del compilatore constexpr valori letterali definiti dall'utente in un'espressione richiesta
- [std:c++latest] CTAD con inizializzatore designato non viene compilato
- [std:c++latest] La funzione eliminata disabilita ADL nel contesto immediato
- [std:c++latest] I nomi di enumerazione importati pubblicamente nella dichiarazione di classe con using-enum-declaration (using enum) vengono persi attraverso i confini del modulo
- [std:c++latest] errore C3535: non è possibile dedurre il tipo per "auto" da "overloaded-function"
- [std:c++latest] errore C7595: la chiamata alla funzione immediata non è un'espressione costante
- [std:c++latest] Errore nell'analisi della dichiarazione della funzione che accetta un puntatore a funzione e ha una lista di inizializzazione vuota come argomento predefinito
- [std:c++latest] Linea vuota aggiuntiva in output con /E e #warning
- [std:c++latest] Avviso falso positivo C4305 quando si usa un parametro di modello non di tipo predefinito
- [std:c++latest] L'espressione fold non riesce a espandere il pacchetto completo nel modello annidato dopo la correzione C7515
- [std:c++latest] La specializzazione di funzione e i concetti causano una chiamata ambigua a una funzione sovraccaricata
- [std:c++latest] ICE utilizzando Boost.PFR con moduli C++ (vs-17.14.0-preview1)
- [std:c++latest] ICE durante la compilazione di mp-units
- [std:c++latest] ICE con moduli e if consteval
- [std:c++latest] ICE con guida di deduzione per template
- [std:c++latest] ICE: writer.cpp:542 è accaduto l'impossibile quando si usano folly + moduli
- Identificatore [std:c++latest] non trovato nell'espressione di piega annidata
- [std:c++latest] In msvc V145, il BUG si è attivato quando si utilizzano membri intraclasse nei vincoli all'interno di template nelle classi
- [std:c++latest] L'interazione tra no_unique_address e has_unique_object_representations non è corretta
- [std:c++latest] Errore interno del compilatore durante il collegamento del modulo c++20
- [std:c++latest] Errore interno del compilatore quando si usano i moduli C++
- [std:c++latest] Errore interno del compilatore. (file del compilatore 'D:\a_work\1\s\src\vctools\Compiler\CxxFE\sl\p1\c\trees.c', riga 19104)
- [std:c++latest] Errore nelle espressioni di riduzione con i mixin
- [std:c++latest] MSVC: struct annidato che dipende dai parametri del modello della classe esterna fallisce come NTTP all'interno dell'ambito della classe (C2993)
- [std:c++latest] MSVC non riesce a compilare il codice (funzionante) che implica la metaprogrammazione del modello
- [std:c++latest] Le espressioni lambda annidate generano errori in msvc con associazione strutturata etichettata
- [std:c++latest] Si noti che l'avviso C4477 non è accurato per size_t, redux
- [std:c++latest] Risoluzione dell'overload non riuscita per i parametri del modello non di tipo enum
- [std:c++latest] Pacchetto di parametri con riferimento al problema della matrice C
- [std:c++latest] Impossibile dedurre il tipo di argomento in std::optional
- [std:c++latest] Le unioni non sono compatibili con il layout nonostante contengano membri dati compatibili con il layout
- [std:c++latest] Arresto anomalo generale di CL.exe (codice di uscita -1073741819) con std::filesystem::path annidato nel C++17 e versioni successive
- [std:c++latest][Neg] Il distruttore è privato, ma il compilatore consente di creare un oggetto nello stack.
- [c0>std:c++latest][regression] Bug apparente del parser C++ - genera C2143 + C2451 (+ facoltativo C2530 + C3531) se l'espressione range-for all'interno di una funzione template contiene un'espressione lambda
- [std:c++latest][Regression] C3520 quando si espande il pacchetto di parametri del modello in un modello di funzione membro di un modello di classe
- [std:c++latest][Regression] Non è possibile usare l'istanza dell'alias con template se il parser vede per prima l'istanza dell'alias in una classe template
- [std:c++latest][Regression] Errore interno del compilatore nelle versioni più recenti di MSVC durante la compilazione di un'espressione di riduzione specifica
- [std:c++latest][regression] Errore interno del compilatore che include puntatore a funzione membro, ereditarietà multipla e funzione pass-through constexpr.
- [std:c++latest][Regressione] Errore interno del compilatore con riferimento lambda e constexpr in Visual Studio 2026 ( CL.exe versione 19.50.35722 per x64 )
- [std:c++latest][Regression] Lambda non è in grado di accedere alla costante locale
- [std:c++latest][regressione] Errore interno del compilatore MSVC 14.50.35503 [Visual Studio 2026 Insiders]
- [std:c++latest][Regression] Risoluzione dell'overload non riuscita con una specializzazione del modello di classe
- [std:c++latest][Regression] Regression (Errore di compilazione) quando si usano moduli e fmtlib
- [std:c++latest][Regression]Risultato errato quando lo struct contiene un membro [[no_unique_address]]
- [std:c++latest][regression][Uso di un elenco di inizializzatori come argomento modello quando esiste un overload incompatibile genera l'errore C2440
- [std:c++latest][Regression]Avviso C4864 generato in modo non corretto quando si chiamano funzioni membro non modello sottoposte a override della classe base del modello
- [std:c++latest]IntelliSense C++ e il compilatore segnalano che la variabile errata è const
- [std:c++latest]L'operatore ternario non propaga l'operando temporaneo al riferimento rvalue risultante.
- [std:c++latest]L'uso di un identificatore elaborato di tipo per fare riferimento a un'enumerazione il cui tipo sottostante non è int genera errori C3432 e C3433
- [std:c11] MSVC avvisa erroneamente che i membri della matrice flessibile C99 sono un'estensione non standard (matrici di dimensioni zero)
- ARM64 /EHa un movimento di codice non corretto
- Problema ARM64 con inizializzatori statici e distruttori e /OPT:ICF
- ARM64EC: Crash quando si chiama una funzione C++ nella DLL contenente pragma OpenMP, dall'app C# tramite DllImport
- La DLL di inoltro arm64x non supporta i dati
- ASAN_VCASAN_DEBUGGING è difettoso in 17.14.3 Preview 1.0
- I campi di bit con un tipo bool all'inizio vengono interrotti in modalità C
- Arresto anomalo del compilatore C++ con uso di fabsf in un ciclo con ottimizzazione (/O2 /Ob /Ot) e /fp:precise
- Risultato errato della sottotrusione del puntatore constexpr C++
- Debug dinamico dei valori letterali di stringa Null in C++
- C++/CLI C2668 Chiamata ambigua in .NET 9 e versioni successive
- C++/CLI che causa un nuovo arresto anomalo dell'eccezione .NET con .NET Framework 4.8 in x64
- C1001: Errore interno del compilatore con compilazioni ottimizzate a 64 bit di VIM recenti con VS 17.14
- C1090: chiamata API PDB non riuscita, codice di errore '3'
- C2034 (campi di bit troppo ampi) non dovrebbe essere un errore nelle modalità C++
- C4319 non generato durante la compilazione del codice C
- Problemi correlati a C4756 in VS 2022
- variabili locali/parametri con durata sovrapposta 14.40.33814 e versioni successive
- CTime genera un errore nei fusi orari che si trovano dietro GMT. Le modifiche apportate a VS 15.8 hanno prodotto una regressione
- CTime::CTime fallisce con l'anno 1900
- puntatore pendente nel file cpp atlmfc Visual Studio occsite.cpp
- Gli inizializzatori di membri predefiniti per i campi di bit non funzionano durante l'importazione di struct (o classe) da un modulo
- Avviso errato C5061: l'uso di un operatore virgola come espressione pedice è stato deprecato
- EXE compilato con ASAN (e librerie ASAN e DLL ASAN talvolta si bloccano durante l'uscita)
- Errore durante l'ottimizzazione di DUP ridondante, sequenza SMOV (ARM64)
- Errore irreversibile C1001: Errore interno del compilatore
- GC raccoglie durante la chiamata al metodo sulla classe di riferimento c++/cli
- Guarded_by_ in una variabile locale statica segnala un errore di sintassi di annotazione
- Il codice non valido viene accettato a causa del riferimento rvalue che porta a una ricorsione
- Concatenazione non corretta dei valori letterali stringa Unicode
- Campo di bit scrittura codice non corretto
- Inizializzazione non corretta di un membro aggregato annidato con il valore di un membro non correlato
- Istruzioni non corrette generate in AVX2
- Generazione errata dello switch-case nel target arm64
- Deduzione non corretta dell'argomento modello per la funzione chiamata con l'argomento this, da una funzione membro qualificata ref fuori linea.
- Errore interno del compilatore per l'espressione ternaria con tipo non copiabile e lancio
- errore interno del compilatore in msvc 14.50.35717
- Errore interno del compilatore in type_traits e bool dell'operatore nella classe derivata
- Errore interno del compilatore destinato ad ARM64 con VS 2026 18.0 Insider
- errore interno del compilatore durante l'abilitazione di Code Analysis (/analyze) con modelli variadic + SAL
- Errore interno del compilatore quando si usa OpenMP e try/catch nella stessa funzione con /clr abilitato
- Errore interno del compilatore con C/C++ Ottimizzazione della versione del compilatore 19.50.35710 per ARM64
- Errore interno del compilatore con C/C++ Ottimizzazione della versione del compilatore 19.50.35722 per ARM64
- Errore interno del compilatore con i parametri del modello C++ e parola chiave del modello mancante
- I driver KASAN non riescono a eseguire il collegamento riferendosi a funzioni di stringa wide (wcscat, wcscpy, wcsncpy)
- Le parole chiave NON DEVONO essere tradotte in errori, avvisi o suggerimenti.
- Il decltype annidato per lambda attiva l'errore C2011
- Il linker non dovrebbe avvisare per le differenze degli "icall push thunks" su Arm64EC che sono equivalenti
- Stringhe formattate con notazione ottale lunghe causano un Denial of Service al computer dell'utente e provocano il C1060
- MFC static lib segnala la perdita di memoria
- Microsoft.VCToolsVersion.v143.default.txt nella versione 17.2 non viene aggiornato dalla versione 17.1
- Compilazione errata di
svset_neonq(arm_neon_sve_bridge.h) con 19.50.35722 per ARM64- Compilazione errata del ciclo AArch64 SVE (versione 19.50.35722 per ARM64)
- Chiamata del distruttore mancante quando /Zc:nrvo è abilitato (/O2 e /std:c++20)
- L'uso improprio di _BitScanForward risultato può arrestare il compilatore
- Moduli: fughe di dichiarazioni using dalle funzioni esportate
- MSDIS decodifica in modo non corretto alcune istruzioni xchg come nop
- MSVC non riesce a associare una funzione noexcept a un modello istanziato con una firma noexcept
- MSVC non riesce a generare INCP (e amici) - Versione 19.50.35722 per ARM64
- MSVC non riesce a generare MLA/MAD (versione 19.50.35722 per ARM64)
- MSVC non riesce a ottimizzare l'idioma LASTA (versione 19.50.35722 per ARM64)
- MSVC genera un avviso C6001 non corretto
- MSVC x64: _mm_shuffle_ps non ottimizzata correttamente dopo vcvtpd2ps in /O1 o /O2
- La nuova funzionalità di debug dinamico C++ causa occasionalmente l'errore di collegamento 1136
- la deduzione noexcept non funziona (CWG 2355)
- Non implementata l'elisione di copia obbligatoria nell'operatore ternario
- Osservazione dell'output non deterministico durante la compilazione di UCRT per le compilazioni CHPE
- L'ottimizzazione non viene rilevata durante la negazione sicura di UB
- Regressione delle prestazioni nel calcolo hash con funzione hash personalizzata quando si passa a msvc 17.14.7
- Arresto anomalo del runtime di strumentazione PGO in ARM64
- L'operatore di posizionamento new[] in <vcruntime.h> deve essere contrassegnato _MSVC_CONSTEXPR
- Generazione di codice x64 scadente per intervallo per ciclo su matrice membro
- I letterali di stringa grezza hanno un limite di circa 16380 caratteri
- L'analizzatore SAL2 non riesce a gestire shared_locks per Guarded_by annotazione
- Elenco di copertura del Sanitizzatore non funzionante
- La copertura di sanificatore produce codegen non valido per i file binari C++
- Bug di ottimizzazione del codice SIMD
- per la specializzazione della funzione modello statico è necessario specificare statico; clang segnala che non è necessario
- SSA CSE unifica puntatori diversi
- Moduli della libreria standard: la generazione di numeri casuali emette un errore non valido C2512
- L'offset TLS del thread locale statico non è corretto quando si usa /dynamicdeopt, causando un arresto anomalo
- std:c17 e matrici non ridimensionate != LOVE
- La concatenazione di valori letterali stringa con prefissi di codifica diversi ha esito negativo
- Funzione modello non trovata
- L'operatore ternario richiede inutilmente il costruttore di copia
- Errore imprevisto C7595 segnalato
- Risultato imprevisto durante la compilazione della funzione consteval
- Costante in fase di compilazione non usata nella build di versione x64 causa una violazione di accesso nel compilatore durante la fase di collegamento
- Utilizzando il toolset 17.14, uno dei nostri progetti genera un errore di link LNK1120
- Il compilatore VC++ 17.6 preview 1 ARM64EC genera ICEs quando rileva la parola chiave __vectorcall
- VisualCppTools.14.50.35724 PdbCopy.Exe Arm64 arresti anomali della copia Pdb
- Si presuppone che la variabile locale volatile non venga modificata in x64
- Variabile volatile non letta dopo la scrittura
- VS 17.14.13 Codegen non valido per il registro SIMD x64 non configurato correttamente
- VS18.0 Insiders MSVC ICE nella mappa dei messaggi MFC di una classe con base virtuale
- VS2022 errore di ottimizzazione
- L'avviso MSVC di VS2026 C4865 riguarda la modifica del tipo sottostante con /Zc:enumTypes
- Nel Windows SDK manca #include
<utility>in atlcom.h- Arresto anomalo del compilatore x64 durante la compilazione del file di origine di Mesa con ottimizzazioni
- Crash dell'emulatore x64 quando un thread ARM64EC chiama una coroutine x64, che a sua volta chiama un'altra coroutine ARM64EC
Correzioni di bug principali
| Correzioni di bug principali | Dalla comunità |
|---|---|
| Registro MCP non usa l'URL corretto | ticket di feedback |
| L'esecuzione di comandi PowerShell su GitHub Copilot nel terminale di Copilot termina rimanendo in sospeso. | ticket Feedback ticket |
Dall'intero team, grazie per aver scelto Visual Studio! Per gli aggiornamenti, le risorse e le notizie più recenti, vedere Visual Studio Hub e rimanere in contatto.
Buon codice!
Il team di Visual Studio
Annotazioni
Questo aggiornamento può includere nuovi Microsoft o software di terze parti concessi in licenza separatamente, come indicato nella 3rd Party Notices o nella relativa licenza associata.