Compartir vía


/Zc:char8_t (Habilitar C++20 char8_t tipo)

La opción del compilador /Zc:char8_t habilita la compatibilidad de C++20 con tipos conformes a char8_t. char8_t agrega un nuevo tipo de carácter que se utiliza para representar unidades de código UTF-8.

Sintaxis

/Zc:char8_t[-]

Comentarios

La opción del compilador /Zc:char8_t habilita la palabra clave type char8_t como se especifica en el estándar de C++20. Hace que el compilador genere literales de cadena o caracteres prefijos u8 como const char8_t o tipos const char8_t[N], respectivamente, en lugar de como tipos const char o const char[N]. En C++17, las matrices de char se pueden inicializar mediante literales de cadena u8. En C++20, esta inicialización tiene un formato incorrecto y provoca el error del compilador C2440. Este comportamiento puede ser un cambio importante en el origen. Puede revertir el compilador al comportamiento de C++14 o C++17 explícitamente especificando /Zc:char8_t-.

La opción /Zc:char8_t está disponible a partir de la versión 16.1 de Visual Studio 2019. Se habilita automáticamente cuando se especifica /std:c++20 o posterior (por ejemplo, /std:c++latest). De lo contrario, está desactivado de forma predeterminada.

Ejemplo

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 establecer esta opción del compilador en Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.

  3. Agregue /Zc:char8_t o /Zc:char8_t- al panel Opciones adicionales.

Consulte también

/Zc (Conformidad)
/std (Especificar la versión estándar del lenguaje)