Share via


/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++latesto /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

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.

  3. Aggiungere /Zc:static_assert o /Zc:static_assert- al riquadro Opzioni aggiuntive: .

Vedi anche

/Zc (Conformità)