/Zc (Conformidade)

Use as opções do compilador para especificar o /Zc comportamento do compilador padrão ou específico da Microsoft.

Sintaxe

/Zc:option{,option ...}

Você pode definir várias opções /Zc separadas por vírgulas em uma única opção de compilador /Zc. Se uma opção /Zc for habilitada e desabilitada no mesmo comando, a opção exibida pela última vez será usada.

Comentários

Quando o Visual Studio tem uma extensão implementada para o C ou C++ incompatível com o padrão, você pode usar uma opção de conformidade /Zc para especificar o comportamento de conformidade padrão ou específico da Microsoft. Em algumas opções, o comportamento específico da Microsoft é o padrão, para evitar alterações interruptivas em larga escala no código existente. Em outros casos, o padrão é o comportamento padrão, em que os aprimoramentos na segurança, no desempenho ou na compatibilidade superam os custos das alterações interruptivas. A configuração padrão de cada opção de conformidade pode ser alterada nas versões mais recentes do Visual Studio. Para obter mais informações sobre cada opção de conformidade, confira o artigo para da opção específica. A opção do compilador /permissive- define implicitamente as opções de conformidade que não são definidas por padrão com as devidas configurações de conformidade.

Aqui estão as opções do compilador /Zc:

Opção Comportamento
/Zc:__cplusplus[-] Habilite a __cplusplus macro para relatar o padrão com suporte. Desativado por padrão.
/Zc:__STDC__ Habilite a __STDC__ macro para relatar que o padrão C é suportado. Desativado por padrão.
/Zc:alignedNew[-] Habilite a alocação dinâmica superalinhada do C++17. Desativado por padrão, a menos que /std:c++17 ou mais tarde seja especificado.
/Zc:auto[-] Imponha o novo significado padrão do C++ para auto. Ativado por padrão.
/Zc:char8_t[-] Habilite ou desabilite o suporte literal nativo u8 do C++20 como const char8_t. Desativado por padrão, a menos que /std:c++20 ou mais tarde seja especificado.
/Zc:checkGwOdr[-] Impor violações padrão de ODR do C++ em /Gw.
/Zc:enumTypes[-] Habilite regras C++ padrão para enum dedução de tipo. Desativado por padrão.
/Zc:externC[-] Imponha regras padrão do C++ para extern "C" funções. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:externConstexpr[-] Habilite a vinculação externa para constexpr variáveis. Desativado por padrão.
/Zc:forScope[-] Imponha regras de escopo padrão do C++ for . Ativado por padrão.
/Zc:gotoScope[-] Imponha regras padrão do C++ goto em torno da inicialização de variável local. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:hiddenFriend[-] Imponha regras de amigos ocultos do C++ padrão. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:implicitNoexcept[-] Habilite implícito noexcept nas funções necessárias. Ativado por padrão.
/Zc:inline[-] Remova funções ou dados não referenciados se eles forem COMDAT ou tiverem apenas vinculação interna. Desativado por padrão.
/Zc:lambda[-] Habilitar o novo processador lambda para verificações sintáticas no modo de conformidade em lambdas genéricos. Desativado por padrão, a menos que /std:c++20 ou mais tarde seja especificado.
/Zc:noexceptTypes[-] Imponha as regras do C++17 noexcept . Desativado por padrão, a menos que /std:c++17 ou mais tarde seja especificado.
/Zc:nrvo[-] Habilite elisões opcionais de copiar e mover. Desativado por padrão, a menos que /O2, /permissive-ou /std:c++20 ou posterior seja especificado.
/Zc:preprocessor[-] Use o novo pré-processador em conformidade. Desativado por padrão, a menos que /std:c11 ou mais tarde seja especificado.
/Zc:referenceBinding[-] Um UDT temporário não será associado a uma referência lvalue não const. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:rvalueCast[-] Imponha regras de conversão de tipo explícito do C++ padrão. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:sizedDealloc[-] Habilite as funções de desalocação de tamanho global do C++14. Ativado por padrão.
/Zc:strictStrings[-] Desative a conversão de literal de cadeia de caracteres ou char* wchar_t* . Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:static_assert[-] Tratamento rigoroso de static_assert. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:templateScope[-] Imponha regras de sombreamento de parâmetro de modelo C++ padrão. Desativado por padrão.
/Zc:ternary[-] Imponha regras de operador condicional em tipos de operando. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:threadSafeInit[-] Habilite a inicialização estática local thread-safe. Ativado por padrão.
/Zc:throwingNew[-] Suponha operator new que jogue no fracasso. Desativado por padrão.
/Zc:tlsGuards[-] Gere verificações de tempo de execução para inicialização de variável TLS. Ativado por padrão.
/Zc:trigraphs[-] Habilitar trígrafos (obsoleta, desativada por padrão).
/Zc:twoPhase- Use o comportamento de análise de modelo não conforme (aplicável somente quando /permissive- especificado, cujo padrão é conforming).
/Zc:wchar_t[-] wchar_t é um tipo nativo, não um typedef. Ativado por padrão.
/Zc:zeroSizeArrayNew[-] Chame o membro new/delete para matrizes de objetos de tamanho 0. Ativado por padrão.

Para obter mais informações sobre problemas de conformidade no MSVC, confira Comportamento fora do padrão.

Confira também

Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC