/Zc:static_assert
(Gestione strict static_assert)
L'opzione /Zc:static_assert
del compilatore indica al compilatore di valutare static_assert
le chiamate con espressioni di test non dipendenti quando vengono analizzati i modelli di classe o di funzione.
Sintassi
/Zc:static_assert
/Zc:static_assert-
Osservazioni:
L'opzione /Zc:static_assert
del compilatore indica al compilatore di valutare un static_assert
oggetto nel corpo di un modello di funzione o nel corpo di una funzione membro del modello di classe al primo analisi, se l'espressione di test non è dipendente. Se l'espressione di test non dipendente non false
è , il compilatore genera immediatamente un errore. Quando l'espressione di test dipende, non static_assert
viene valutata finché non viene creata un'istanza del modello.
L'opzione /Zc:static_assert
è disponibile a partire da Visual Studio 2022 versione 17.1. Nelle versioni precedenti di Visual Studio o se /Zc:static_assert-
è specificato, Visual Studio non esegue analisi dipendenti se static_assert
è all'interno del corpo di un modello di funzione o all'interno del corpo di una funzione membro di un modello di classe. Valuta invece solo quando static_assert
viene creata un'istanza di un modello.
L'opzione /permissive-
abilita /Zc:static_assert
, quindi è attivata per impostazione predefinita nei progetti che usano /std:c++20
o /std:c++latest
. L'opzione /Zc:static_assert-
deve venire dopo un'opzione /std:c++20
, /std:c++latest
o /permissive-
nella riga di comando.
Se il compilatore è in modalità C++14 predefinita e /permissive-
o /Zc:static_assert
è specificato, usa il /Zc:static_assert
comportamento. Tuttavia, se valuta un static_assert
oggetto in un corpo del modello, segnala anche l'avviso disattivato C5254, "la funzionalità del linguaggio 'terse static assert' richiede il flag del compilatore '/std:c++17
'", poiché questo comportamento non è necessario fino a C++17.
Per impostare questa opzione del compilatore in Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.
Aggiungere
/Zc:static_assert
o/Zc:static_assert-
al riquadro Opzioni aggiuntive: .