C ++ 20'de u8
dize değişmezleri char8_t
türe bağlıdır. Kasıtlı olarak artık dönüşmezler char const*
:
const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20
Tabii ki, C ++ 20'ye geçerken nihai hedef tamamen yeni davranışla devam etmektir (yukarıdaki örnekte: türünü değiştirmek str
). Ancak, üçüncü taraf kütüphaneler nedeniyle, bu genellikle hemen mümkün değildir.
Tanıtan ve "çürüten" teklifler bunu char8_t
öngörür ve clang ve gcc'de -fno-char8_t
eski davranışa geri dönme bayrağı olduğunu belirtir (yine de diğer C ++ 20 özelliklerinin tadını çıkarırken).
2. teklif, Microsoft'un benzer bir bayrağı izleyip ekleyeceği beklentisini ortaya koyuyor, ancak nasıl ayarlanacağını bulamadım (en azından VS 2019, Sürüm 16.4'te).
Peki MSVC eşdeğerinin ne olduğunu bilen -fno-char8_t
var mı?