Novità di MSVC Build Tools

La versione 14.51 offre numerosi aggiornamenti e correzioni al compilatore C++ Microsoft e ad altri strumenti di compilazione.

Novità di MSVC Build Tools versione 14.51

  • Introdotta in Visual Studio 2026 versione 18.6 rilasciata a maggio 2026.

Visual Studio 2026 versione 18.6 include il set di strumenti della piattaforma v145 per progetti MSBuild C++ e Microsoft C++ (MSVC) Build Tools versione 14.51. Per accedere a tutte le nuove funzionalità del linguaggio, compilare con /std:c++latest. In alternativa, se si vuole limitare le funzionalità fino a C++23, usare /std:c++23preview.

MSVC Build Tools versione 14.51 mantiene la compatibilità binaria con il codice compilato con gli strumenti MSVC forniti in Visual Studio 2015 o versione successiva. Per altre informazioni sulla compatibilità binaria, vedere Compatibilità binaria C++ tra le versioni di Visual Studio.

Per informazioni dettagliate su Visualizza
Novità per gli sviluppatori C++ MSVC Build Tools versione 14.51 di Release Candidate è ora disponibile
Miglioramenti della libreria standard (STL) STL Changelog MSVC Build Tools 14.51
Miglioramenti della conformità del linguaggio C++ Miglioramenti della conformità C/C++, modifiche del comportamento e correzioni di bug negli strumenti di compilazione Microsoft C++ (MSVC)

Di seguito sono riportate alcune delle nuove funzionalità disponibili in MSVC Build Tools versione 14.51:

Miglioramenti del linguaggio C++

  • Altre funzionalità di C++23 e C++20 e correzioni dei problemi di conformità. Per informazioni dettagliate su C++23, vedere Supporto di C++23 in MSVC Build Tools 14.51.
  • Varie correzioni alla gestione della funzione consteval, tra cui il supporto a constexpr new/delete nei moduli. Il /experimental:constevalVfuncVtable comportamento è ora abilitato per impostazione predefinita.
  • Aggiunto il supporto per le funzionalità del linguaggio C: il qualificatore _Atomic e __typeof__ per i tipi di funzioni.
  • Correzione della diagnostica non corretta per i membri della matrice flessibile C99.
  • MSVC genera ora file IFC in base alla versione 0.44 della specifica IFC.
  • Miglioramento del ripristino degli errori del parser.

Miglioramenti del linguaggio C

Aggiunto il supporto per i qualificatori _Atomic e aggiunto il supporto per i tipi di funzione __typeof__. Correzione di C4319 che non viene generata durante la compilazione del codice C.

Miglioramenti della libreria standard

  • Sono state aggiunte nuove intestazioni C++23: <flat_map> (P0429R9) e <flat_set> (P1222R4).
  • Revisione massiccia <regex> : correzione di problemi di correttezza e prestazioni di lunga durata. L'implementazione include miglioramenti significativi delle prestazioni.
  • Vettorizzazione NEON per ARM64: Prima versione con algoritmi STL vettorizzati con NEON per ARM64/ARM64EC. In precedenza, solo x64/x86 riceveva ottimizzazioni SIMD con SSE4.2 e AVX2. Le implementazioni vettorializzate sono ora disponibili per gli algoritmi, tra cui swap_ranges(), rotate()reverse(), min_element(), max_element()find(), , count(), e altro ancora.
  • Sono state implementate 18 risoluzioni di issue del Library Working Group (LWG), incluse le correzioni per l'overflow nella conversione della durata, il supporto per gli array construct_at e gli overload const optional.
  • Conversioni da interi a stringhe ottimizzate stampando le cifre a coppie. La libreria di modelli standard è ora ottimizzata per la velocità anziché per le dimensioni.
  • Aggiunti type traits per rilevare i riferimenti associati a oggetti temporanei (P2255R2).
  • Aggiunto il supporto esplicito per la gestione del ciclo di vita (P2590R2).
  • Visualizzazioni avanzate del debugger, inclusa una c_str() funzione intrinseca per basic_string che abilita i punti di interruzione condizionali.

Miglioramenti al processo di build

  • Supporto di Arm SVE: Supporto dell'estensione SVE (Arm Scalable Vector Extension) in MSVC, incluso il supporto dei tipi front-end, l'abbassamento intrinseco, la rimozione dei registri salvati dal chiamato e il supporto di DIA SDK.
  • PGO basata su campioni: Supporto in anteprima per le ottimizzazioni guidate dal profilo basate su campioni. Per altre informazioni, vedere Usare l'ottimizzazione guidata profilo di esempio (SPGO) per migliorare le prestazioni di C++.
  • L'ottimizzatore backend C++ migliora la generazione del codice, tra cui un miglior inlining, l'ottimizzazione dei cicli e la corrispondenza di pattern.
  • Supporto sperimentale per le direttive MASM x64 Unwind versione 3. Per ulteriori informazioni, vedere direttive Unwind versione 3 (sperimentale)
  • Anteprima di Intel APX: Supporto in anteprima per Intel Advanced Performance Extensions. Per altre informazioni, vedere /feature (x64), [[msvc::enable(feature:APX)]]e [[msvc::disable(feature:APX)]].
  • Abilitazione dell'eliminazione delle informazioni di debug per ridurre le dimensioni del PDB.

Elementi deprecati

  • Le seguenti intestazioni sperimentali per coroutine sono ora sconsigliate: <experimental/coroutine>, <experimental/generator> e <experimental/resumable>. Eseguire la transizione alle coroutine C++20 standard usando l'intestazione <coroutine> .

Funzionalità rimosse

Sono state rimosse le funzionalità non Standard deprecate seguenti:

  • TR1 inclusi lo spazio dei nomi std::tr1, i vecchi array::assign() e le vecchie distribuzioni e motori <random>. Deprecato da VS 2017 15.5 (dicembre 2017).
  • _ALLOW_RTCc_IN_STL macro rimossa. La Libreria Standard dei Modelli non supporta l'opzione del compilatore /RTCc, ma /RTCs e /RTCu//RTC1 rimangono supportate.
  • <hash_map> e <hash_set>. Deprecato da VS 2015 (luglio 2015).
  • <experimental/filesystem>. Deprecato da VS 2019 16.3 (settembre 2019).
  • stdext::checked_array_iterator e stdext::unchecked_array_iterator. Deprecato da VS 2022 17.8 (novembre 2023) per C++17 e versioni successive.
  • basic_istream::ipfx() / isfx() e basic_ostream::opfx()/osfx(). Deprecato da VS 2022 17.9 (febbraio 2024) per C++17 e versioni successive.
  • locale::empty(). Deprecato da VS 2022 17.14 (maggio 2025).

Novità di MSVC Build Tools versione 14.50

  • Introdotta in Visual Studio 2026 versione 18.0 rilasciata a novembre 2025.

Visual Studio 2026 versione 18.0 include il set di strumenti della piattaforma v145 per i progetti MSBuild C++ e Microsoft C++ (MSVC) Build Tools versione 14.50, che offre la migliore conformità, prestazioni della compilazione e storia delle prestazioni di runtime. Per accedere a tutte le nuove funzionalità del linguaggio, compilare con /std:c++latest. In alternativa, se si vuole limitare le funzionalità fino a C++23, usare /std:c++23preview.

MSVC Build Tools versione 14.50 mantiene la compatibilità binaria con il codice compilato con gli strumenti MSVC forniti in Visual Studio 2015 o versione successiva. Per altre informazioni sulla compatibilità binaria, vedere Compatibilità binaria C++ tra le versioni di Visual Studio.

Per informazioni dettagliate su Visualizza
Novità per gli sviluppatori C++ Novità per gli sviluppatori C++ in Visual Studio 2026 versione 18.0
Miglioramenti della libreria standard C++ STL Changelog MSVC Build Tools 14.50
Aggiornamenti del linguaggio C++ Aggiornamenti del linguaggio C++ in MSVC Build Tools v14.50
Miglioramenti della conformità del linguaggio C++ Miglioramenti della conformità C/C++, modifiche del comportamento e correzioni di bug negli strumenti di compilazione Microsoft C++ (MSVC)

Di seguito sono riportate alcune delle nuove funzionalità disponibili in MSVC Build Tools versione 14.50 e Visual Studio 2026 versione 18.0:

Miglioramenti del linguaggio C++

  • C++20 è l'impostazione predefinita per la nuova app console, l'applicazione desktop di Windows, la libreria Dynamic-Link e i progetti C++ della libreria statica.
  • La direttiva #warning di pre-elaborazione C++23 consente di generare un messaggio di diagnostica senza arrestare la compilazione, come fa #error. Per altre informazioni, vedere #warning direttiva.
  • Imposta facilmente gli argomenti della riga di comando del debugger per qualsiasi progetto C++ utilizzando la barra degli strumenti per i progetti .vcxproj, CMake e Unreal Engine. Questa funzionalità non è più associata al carico di lavoro Sviluppo di giochi con C++ ed è disponibile per tutti gli sviluppatori C++ senza installare altri carichi di lavoro o componenti. Per altre informazioni, vedere Passare argomenti della riga di comando.

Miglioramenti della libreria standard

  • Affidabilità e velocità migliorate <regex> . LWG-2503 ha aggiunto un'opzione multilinea a syntax_option_type. Si tratta di un regex cambiamento comportamentale. Per impostazione predefinita, _REGEX_LEGACY_MULTILINE_MODE è 0, che richiede il comportamento Standard. Impostare _REGEX_LEGACY_MULTILINE_MODE su 1 per richiedere il comportamento ereditato. Per altre informazioni, vedere Log modifiche STL.
  • Sono state aggiunte e migliorate implementazioni vettorializzate di molti tipi e funzioni.

Miglioramenti di GitHub Copilot

  • La chat di Copilot consente di usare il linguaggio naturale per ottenere risposte alle domande (modalità Ask) o anche implementare automaticamente le modifiche (modalità agente).
  • La chat di Copilot è più intelligente con un contesto migliorato per le attività quotidiane. Quando si esegue una ricerca nella codebase e si fa riferimento a righe specifiche nel codice, è possibile ottenere risultati migliori.
  • È stata aggiunta un'opzione Azioni Copilot al menu di scelta rapida del pulsante destro del mouse nell'editor di Visual Studio. Usarlo per portare rapidamente un file o righe di codice specifico selezionato all'attenzione di Copilot Chat. È quindi possibile chiedere a Copilot di spiegare cosa fa il codice, apportare ottimizzazioni, generare commenti, generare unit test e altro ancora.
  • Migliori completamenti di codice grazie all'intelligenza artificiale per C++. GitHub Copilot usa il contesto dei file pertinenti per migliorare il completamento automatico inline per C++. GitHub Copilot include altri file rilevanti come contesto, che riduce le allucinazioni offrendo suggerimenti più pertinenti e accurati.
  • Per altre informazioni, vedere Nuove funzionalità di GitHub Copilot per sviluppatori C++: Aggiornare MSVC, migliorare le prestazioni di compilazione e effettuare il refactoring del codice C++.

Miglioramenti al processo di build

  • Visual Studio 2026 include ora CMake 4.1.1 per impostazione predefinita. CMake include anche un generatore di Visual Studio 2026 e supporta progetti SLNX moderni, in modo da poter compilare progetti Visual Studio C++ direttamente da CMake.
  • Include la versione più recente del motore IncrediBuild e un'estensione aggiornata che funziona con Visual Studio 2026 versione 18.0.
  • Miglioramenti delle prestazioni del runtime back-end del compilatore. Rispetto alla versione 17.14 di Visual Studio, è previsto fino a un miglioramento del 6% nei benchmark RenderThread City Sample e fino a un +3% nei benchmark GameThread di Unreal Engine. Per altre informazioni, vedere Perché aggiornare gli strumenti di compilazione C++.
  • L'assistente configurazione di Visual Studio consente di ridefinire i progetti per la compilazione con gli strumenti di compilazione MSVC più recenti. Per ulteriori informazioni, vedere Ripuntare i progetti con l'assistente alla configurazione.

Miglioramenti dell'analisi del codice

  • Clang-Tidy miglioramenti dell'analisi del codice offrono opzioni di configurazione avanzate per compilazioni e flussi di lavoro personalizzati più veloci:
    • L'analisi del codice include nuove opzioni di configurazione. È ora possibile allocare più processori per eseguire l'analisi del codice come parte della compilazione, accelerando il flusso di lavoro di sviluppo.
    • È possibile aggiungere argomenti personalizzati alla riga di comando usata per richiamare clang-tidy, offrendo il controllo completo sulla configurazione dell'analisi.
    • Accedere alle nuove opzioni da Project Properties>Code Analysis>Clang-Tidy:

Schermata della finestra di dialogo Proprietà del progetto che mostra le opzioni di configurazione di clang-tidy, tra cui l'allocazione del processore e gli argomenti personalizzati della riga di comando

  • Supporto di AddressSanitizer per le build ARM64 (anteprima): per qualche tempo, gli strumenti di compilazione MSVC supportano progetti di compilazione destinati a x64 e x86 con AddressSanitizer, che consente di identificare problemi di sicurezza della memoria difficili da trovare con zero falsi positivi in fase di esecuzione e aumentare la sicurezza della memoria. È ora possibile usare AddressSanitizer per usare ARM64 come destinazione. Questa funzionalità è in anteprima.

Miglioramenti della produttività

  • Generare un output pre-elaborato per un file C++. In Visual Studio fare clic con il tasto destro del mouse su un file C++ per generare immediatamente l'output pre-elaborato, semplificando il debug di macro e inclusioni e visualizzare immediatamente gli errori: Screenshot che mostra il menu di scelta rapida del clic con il tasto destro del mouse per un file C++ con l'opzione Preprocess evidenziata.
  • Il debugger di Visual Studio mostra ora i valori restituiti delle funzioni inline. Ciò offre visibilità in tempo reale sul comportamento della funzione senza entrare nel codice o impostare controlli, rendendo più veloce individuare i problemi di logica o i risultati imprevisti: Screenshot che mostra i valori restituiti in linea visualizzati nel debugger accanto alla chiamata della funzione.

Altre modifiche

  • Nel programma di installazione di Visual Studio il carico di lavoro Linux C++ viene rinominato Linux, Mac e lo sviluppo incorporato con C++.

Elementi deprecati

  • I sistemi operativi di destinazione minimi supportati per MSVC Build Tools versione 14.50 sono Windows 10 o Windows Server 2016.

  • MSVC Build Tools versione 14.50 non supporta più:

    • Windows 7/ Windows Server 2008 R2
    • Windows 8/ Windows Server 2012
    • Windows 8.1/Windows Server 2012 R2

    Queste modifiche consentono prestazioni migliori, sicurezza avanzata e allineamento con le funzionalità della piattaforma Windows più recenti.

L'opzione /await del compilatore MSVC è deprecata e verrà rimossa in una versione futura. Questa opzione ha abilitato un'implementazione preliminare delle coroutine C++ usando l'intestazione <experimental/coroutine> . Gli sviluppatori devono passare alle coroutine C++ standard usando l'intestazione <coroutine> disponibile in C++20 e versioni successive. Per i progetti C++14/17, usare /await:strict (che non è deprecato) per accedere all'intestazione standard <coroutine> senza abilitare altre funzionalità C++20.

Il carico di lavoro per lo sviluppo di dispositivi mobili con C++ per iOS e Android, così come gli strumenti Embedded e IoT (Visualizzatore RTOS, Monitor seriale, Visualizzatore periferiche e Importazione progetti ST), non sono più supportati e verranno rimossi in un aggiornamento futuro. I NDK Android inclusi nel carico di lavoro Sviluppo di dispositivi mobili con C++ rimangono supportati. Questo influisce sul supporto degli strumenti per lo sviluppo di iOS e Android, inclusi nuovi progetti, compilazione e debug.

Funzionalità rimosse

Feedback e suggerimenti

Ci piacerebbe sapere cosa ne pensi! È possibile segnalare un problema o suggerire una funzionalità usando l'icona Invia Feedback nell'angolo in alto a destra del programma di installazione o dell'IDE di Visual Studio o da Aiuto>Invia Feedback. È possibile tenere traccia dei problemi usando Visual Studio Developer Community, in cui si aggiungono commenti o si trovano soluzioni. È anche possibile ottenere assistenza gratuita per l'installazione tramite il supporto live chat.

Blogs

Rimanere aggiornati su tutte le nuove versioni sfruttando le informazioni dettagliate e le raccomandazioni disponibili in Microsoft Blog per sviluppatori. I blog includono post approfonditi su un'ampia gamma di funzionalità.

Il blog del team C++ e il blog di Visual Studio sono di particolare interesse.