/Zc:externConstexpr (Habilitar variáveis extern constexpr)

A opção do compilador /Zc:externConstexpr informa ao compilador se conformar ao padrão do C++ e permitir a vinculação externa para variáveis constexpr. Por padrão, o Visual Studio sempre fornece um vínculo interno da variável constexpr, mesmo que você especifique a palavra-chave extern.

Sintaxe

/Zc:externConstexpr[-]

Comentários

A opção do compilador /Zc:externConstexpr faz com que o compilador aplique o vínculo externo a variáveis declaradas usando extern constexpr.

Em versões anteriores do Visual Studio, por padrão ou se for especificado, o Visual Studio aplica vinculação interna a variáveis, mesmo se /Zc:externConstexpr- a constexprextern palavra-chave for usada. A opção /Zc:externConstexpr está disponível a partir do Visual Studio 2017 Atualização 15.6. e está desativada por padrão.

A partir da Atualização 17.6 do Visual Studio 2022, a /permissive- opção habilita e /Zc:lambda/Zc:externConstexpr . Nas versões anteriores, /permissive- não habilitava nenhuma delas.

Se um arquivo de cabeçalho contiver uma variável declarada extern constexpr, ele deverá ser marcado com __declspec(selectany) para mesclar as declarações duplicadas em uma única instância no binário vinculado. Caso contrário, você poderá ver erros de vinculador, por exemplo, LNK2005, devido às violações da regra de uma definição.

Para definir essa opção do compilador no Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.

  3. Adicione /Zc:externConstexpr ou /Zc:externConstexpr- ao painel Opções adicionais:.

Confira também

Palavra-chave auto
permissive
/Zc (Conformidade)