En C ++ 20 u8
los literales de cadena se basan en el char8_t
tipo. Deliberadamente ya no se convierten a char const*
:
const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20
Por supuesto, el objetivo final cuando se migra a C ++ 20 es ir completamente con el nuevo comportamiento (en el ejemplo anterior: cambiar el tipo de str
). Sin embargo, debido a las bibliotecas de terceros, esto a menudo no es posible de inmediato.
Las propuestas que introducen y "remedian" char8_t
anticipan eso y mencionan que en clang y gcc existe la -fno-char8_t
bandera para volver al comportamiento anterior (sin dejar de poder disfrutar de otras características de C ++ 20).
La segunda propuesta establece la expectativa de que Microsoft seguirá y agregará un indicador similar, pero no pude encontrar cómo configurarlo (al menos en VS 2019, Versión 16.4).
Entonces, ¿alguien sabe cuál es el equivalente de MSVC -fno-char8_t
?