W C ++ 20 u8
literałów łańcuchowych jest opartych na char8_t
typie. Celowo nie przechodzą już na char const*
:
const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20
Oczywiście ostatecznym celem migracji do C ++ 20 jest całkowite przejście na nowe zachowanie (w powyższym przykładzie: zmiana typu str
). Jednak ze względu na biblioteki stron trzecich często nie jest to możliwe natychmiast.
Propozycje, które wprowadzają i „naprawiają”, char8_t
przewidują to i wspominają, że w clang i gcc jest -fno-char8_t
flaga, aby powrócić do starego zachowania (wciąż będąc w stanie cieszyć się innymi funkcjami C ++ 20).
Druga propozycja określa oczekiwanie, że Microsoft podąży za nią i doda podobną flagę, ale nie udało mi się znaleźć sposobu jej ustawienia (przynajmniej w VS 2019, wersja 16.4).
Czy ktoś wie, czym jest odpowiednik MSVC -fno-char8_t
?