/Zc:char8_t
(habilitar o tipo char8_t do C++20)
A opção do compilador /Zc:char8_t
habilita o suporte ao tipo char8_t
em conformidade com C++20. char8_t
é um tipo de caractere utilizado para representar as unidades de código UTF-8.
Sintaxe
/Zc:char8_t
[-
]
Comentários
A opção do compilador /Zc:char8_t
habilita a palavra-chave do tipo char8_t
conforme especificado no padrão C++20. Isso faz com que o compilador gere literais de caracteres ou cadeia de caracteres com prefixo u8
como tipos const char8_t
ou const char8_t[N]
, respectivamente, em vez de tipos const char
ou const char[N]
. Em C++17, matrizes de char
podem ser inicializados usando literais de cadeia de caracteres u8
. Em C++20, essa inicialização está mal formada e causa o erro de compilador C2440. Esse comportamento pode ser uma alteração interruptiva de fonte. É possível reverter o compilador para o comportamento C++14 ou C++17 explicitamente especificando /Zc:char8_t-
.
A opção /Zc:char8_t
está disponível a partir do Visual Studio 2019 versão 16.1. Ela é habilitada automaticamente quando você especifica /std:c++20
ou posterior (como /std:c++latest
). Caso contrário, é desativada por padrão.
Exemplo
const char* s = u8"Hello"; // Compiles in C++17, Error C2440 in C++20
const char8_t* s = u8"Hello"; // Compiles in C++20 or with /Zc:char8_t
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:char8_t
ou/Zc:char8_t-
ao painel Opções adicionais:.
Confira também
/Zc
(Conformidade)
/std
(Especificar a versão padrão da linguagem)