/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