/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
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.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.
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)