/Zc (Conformità)

Usare le opzioni del /Zc compilatore per specificare il comportamento del compilatore standard o specifico di Microsoft.

Sintassi

/Zc:opzione{,opzione ...}

È possibile impostare più /Zc opzioni separate da virgole in una singola /Zc opzione del compilatore. Se un'opzione /Zc è abilitata e disabilitata nello stesso comando, viene usata l'opzione visualizzata per ultima.

Osservazioni:

Quando Visual Studio ha implementato un'estensione per C o C++ non compatibile con lo standard, è possibile usare un'opzione /Zc di conformità per specificare un comportamento specifico o conforme allo standard. Per alcune opzioni, il comportamento specifico di Microsoft è l'impostazione predefinita, per evitare modifiche di rilievo su larga scala al codice esistente. In altri casi, il valore predefinito è il comportamento standard, in cui i miglioramenti apportati alla sicurezza, alle prestazioni o alla compatibilità superano i costi delle modifiche di rilievo. L'impostazione predefinita di ogni opzione di conformità può cambiare nelle versioni più recenti di Visual Studio. Per altre informazioni su ogni opzione di conformità, vedere l'articolo relativo all'opzione specifica. L'opzione /permissive- del compilatore imposta in modo implicito le opzioni di conformità non impostate per impostazione predefinita sulle impostazioni conformi.

Ecco le opzioni del /Zc compilatore:

Opzione Comportamento
/Zc:__cplusplus[-] Abilitare la __cplusplus macro per segnalare lo standard supportato. Disattivato per impostazione predefinita.
/Zc:__STDC__ Abilitare la __STDC__ macro per segnalare che lo standard C è supportato. Disattivato per impostazione predefinita.
/Zc:alignedNew[-] Abilitare l'allocazione dinamica sovraallineare C++17. Disattivato per impostazione predefinita, a meno che /std:c++17 non venga specificato o versione successiva.
/Zc:auto[-] Applicare il nuovo significato C++ Standard per auto. Attivata per impostazione predefinita.
/Zc:char8_t[-] Abilitare o disabilitare il supporto dei valori letterali nativi u8 C++20 come const char8_t. Disattivato per impostazione predefinita, a meno che /std:c++20 non venga specificato o versione successiva.
/Zc:checkGwOdr[-] Applicare violazioni ODR C++ standard in /Gw.
/Zc:enumTypes[-] Abilitare le regole C++ standard per enum la deduzione del tipo. Disattivato per impostazione predefinita.
/Zc:externC[-] Applicare regole C++ standard per extern "C" le funzioni. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:externConstexpr[-] Abilitare il collegamento esterno per constexpr le variabili. Disattivato per impostazione predefinita.
/Zc:forScope[-] Applicare le regole di ambito C++ for standard. Attivata per impostazione predefinita.
/Zc:gotoScope[-] Applicare regole C++ goto standard per l'inizializzazione delle variabili locali. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:hiddenFriend[-] Applicare regole Friend nascoste C++ standard. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:implicitNoexcept[-] Abilitare l'implicito noexcept nelle funzioni necessarie. Attivata per impostazione predefinita.
/Zc:inline[-] Rimuovere funzioni o dati non referenziati se sono COMDAT o hanno solo un collegamento interno. Disattivato per impostazione predefinita.
/Zc:lambda[-] Abilitare un nuovo processore lambda per controlli sintattici in modalità di conformità nelle espressioni lambda generiche. Disattivato per impostazione predefinita, a meno che /std:c++20 non venga specificato o versione successiva.
/Zc:noexceptTypes[-] Applicare le regole C++17 noexcept . Disattivato per impostazione predefinita, a meno che /std:c++17 non venga specificato o versione successiva.
/Zc:nrvo[-] Abilitare le elisioni di copia e spostamento facoltative. Disattivato per impostazione predefinita, a meno che /O2non venga specificato , /permissive-o /std:c++20 versione successiva.
/Zc:preprocessor[-] Usare il nuovo preprocessore conforme. Disattivato per impostazione predefinita, a meno che /std:c11 non venga specificato o versione successiva.
/Zc:referenceBinding[-] Un tipo definito dall'utente temporaneo non verrà associato a un riferimento lvalue nonconst. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:rvalueCast[-] Applicare regole di conversione esplicite dei tipi C++ standard. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:sizedDealloc[-] Abilitare le funzioni di deallocazione con dimensioni globali C++14. Attivata per impostazione predefinita.
/Zc:strictStrings[-] Disabilitare la conversione o wchar_t* il valore letterale char* stringa. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:static_assert[-] gestione rigorosa di static_assert. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:templateScope[-] Applicare le regole di ombreggiatura dei parametri del modello C++ standard. Disattivato per impostazione predefinita.
/Zc:ternary[-] Applicare le regole dell'operatore condizionale ai tipi di operando. Disattivato per impostazione predefinita, a meno che non /permissive- sia specificato.
/Zc:threadSafeInit[-] Abilitare l'inizializzazione statica locale thread-safe. Attivata per impostazione predefinita.
/Zc:throwingNew[-] Si supponga di operator new generare un'eccezione in caso di errore. Disattivato per impostazione predefinita.
/Zc:tlsGuards[-] Generare controlli di runtime per l'inizializzazione delle variabili TLS. Attivata per impostazione predefinita.
/Zc:trigraphs[-] Abilitare i trigrammi (obsoleto, disattivato per impostazione predefinita).
/Zc:twoPhase- Usare il comportamento di analisi dei modelli non conformi (applicabile solo quando /permissive- viene specificato, che per impostazione predefinita è conforme).
/Zc:wchar_t[-] wchar_t è un tipo nativo, non un typedef. Attivata per impostazione predefinita.
/Zc:zeroSizeArrayNew[-] Chiamare un membro new/delete per matrici di oggetti di dimensioni 0. Attivata per impostazione predefinita.

Per altre informazioni sui problemi di conformità in MSVC, vedere Comportamento non standard.

Vedi anche

Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC