Partilhar via


/Zc (Conformidade)

Use as opções do compilador para especificar o comportamento do /Zc 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 suportado. 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 alinhada demais do C++17. Desativado por padrão, a menos que /std:c++17 ou mais tarde seja especificado.
/Zc:auto[-] Impor o novo significado de C++ padrão para auto. Ativo 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 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[-] Impor 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[-] Impor regras de escopo C++ for padrão. Ativo por padrão.
/Zc:gotoScope[-] Aplique 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[-] Aplique regras de amigos ocultos padrão do C++. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:implicitNoexcept[-] Habilite as funções implícitas noexcept nas necessárias. Ativo 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[-] Impor 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 movimentação. 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 vinculará a uma referência nonconst lvalue. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:rvalueCast[-] Impor regras de conversão de tipo explícito padrão C++. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:sizedDealloc[-] Habilite funções de desalocação de tamanho global do C++14. Ativo por padrão.
/Zc:strictStrings[-] Desative a char*wchar_t* conversão ou literal de cadeia de caracteres. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:static_assert[-] manuseio rigoroso de static_assert. Desativado por padrão, a menos que /permissive- seja especificado.
/Zc:templateScope[-] Impor regras de sombreamento de parâmetro 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 thread-safe. Ativo por padrão.
/Zc:throwingNew[-] Suponha operator new que lances no fracasso. Desativado por padrão.
/Zc:tlsGuards[-] Gere verificações de tempo de execução para inicialização de variáveis TLS. Ativo 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- for especificado, o que padroniza como conformidade).
/Zc:wchar_t[-] wchar_t é um tipo nativo, não um typedef. Ativo por padrão.
/Zc:zeroSizeArrayNew[-] Chame membro new/delete para matrizes de objetos de tamanho 0. Ativo 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 de linha de comando do compilador MSVC