Partilhar via


/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

  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: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)