/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 /Zc:externConstexpr-
for especificado, o Visual Studio aplica vinculação interna a constexpr
variáveis, mesmo que a extern
palavra-chave seja 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 opção habilita /permissive-
o /Zc:externConstexpr
./Zc:lambda
Nas versões anteriores, /permissive-
não habilitava nenhum dos dois.
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
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.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
Adicione
/Zc:externConstexpr
ou/Zc:externConstexpr-
ao painel Opções adicionais:.