Partilhar via


/Zc (Conformidade)

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

Sintaxe

/Zc: opção{,opção ...}

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

Observações

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

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

Opção Comportamento
/Zc:__cplusplus[-] Habilite a __cplusplus macro para relatar o padrão suportado. Desativado por padrão.
/Zc:__STDC__ Permitir que a __STDC__ macro relate o padrão C é suportado. Desativado por padrão.
/Zc:alignedNew[-] Habilite a alocação dinâmica sobrealinhada do C++17. Desativado por padrão, a menos que /std:c++17 ou mais tarde seja especificado.
/Zc:auto[-] Imponha o novo significado de C++ padrão para auto. Ativada por predefinição.
/Zc:char8_t[-] Habilite ou desabilite o suporte literal nativo do u8 C++20 como const char8_t. Desativado por padrão, a menos que /std:c++20 ou mais tarde seja especificado.
/Zc:checkGwOdr[-] Aplique violações de ODR C++ padrão em /Gw.
/Zc:enumTypes[-] Habilite regras C++ padrão para enum dedução de tipo. Desativado por padrão.
/Zc:externC[-] Imponha regras C++ padrão 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[-] Aplique regras de escopo C++ for padrão. Ativada por predefinição.
/Zc:gotoScope[-] Imponha regras C++ goto padrão em torno da inicialização de variáveis locais. 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 noexcept implícito nas funções necessárias. Ativada por predefinição.
/Zc:inline[-] Remova funções ou dados não referenciados se forem COMDAT ou tiverem apenas ligação interna. Desativado por padrão.
/Zc:lambda[-] Habilite o novo processador lambda para verificações sintáticas de modo de conformidade em lambdas genéricos. Desativado por padrão, a menos que /permissive- ou /std:c++20 mais tarde seja especificado.
/Zc:noexceptTypes[-] Aplique regras 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 cópia e movimento. Desativado por padrão, a menos que /O2, /permissive-ou /std:c++20 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 se ligará a uma referência nonconst lvalue. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:rvalueCast[-] Imponha regras de conversão de tipo explícito 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. Ativada por predefinição.
/Zc:strictStrings[-] Desative a cadeia de caracteres literal para char* ou wchar_t* conversão. 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âmetros de modelo C++ padrão. Desativado por padrão.
/Zc:ternary[-] Impor 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 segura para threads. Ativada por predefinição.
/Zc:throwingNew[-] Suponha operator new que joga no fracasso. Desativado por padrão.
/Zc:tlsGuards[-] Gere verificações de tempo de execução para inicialização de variáveis TLS. Ativada por predefinição.
/Zc:trigraphs[-] Habilite os trigrafos (obsoletos, desativados por padrão).
/Zc:twoPhase- Use o comportamento de análise de modelo não conforme (aplicável apenas quando /permissive- especificado, que assume como padrão a conformidade).
/Zc:wchar_t[-] wchar_t é um tipo nativo, não um typedef. Ativada por predefinição.
/Zc:zeroSizeArrayNew[-] new / delete Membro de chamada para matrizes de objetos de tamanho 0. Ativada por predefinição.

Para obter mais informações sobre problemas de conformidade no MSVC, consulte Comportamento não padrão.

Consulte também

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