/Zc:char8_t
(Povolení char8_t typu C++20)
Možnost /Zc:char8_t
kompilátoru umožňuje podporu typů vyhovujících char8_t
C++20. char8_t
je typ znaku, který se používá k reprezentaci jednotek kódu UTF-8.
Syntax
/Zc:char8_t
[-
]
Poznámky
Možnost /Zc:char8_t
kompilátoru char8_t
povoluje klíčové slovo type zadané ve standardu C++20. To způsobí, že kompilátor vygeneruje u8
znakové nebo řetězcové literály s předponou jako const char8_t
typy nebo const char8_t[N]
namísto typu nebo const char
const char[N]
. V C++17 mohou být pole char
inicializována pomocí u8
řetězcových literálů. V C++20 je tato inicializace špatně vytvořena a způsobuje chybu kompilátoru C2440. Toto chování může být změnou způsobující chybu zdroje. Zadáním příkazu můžete explicitně /Zc:char8_t-
vrátit chování kompilátoru na C++14 nebo C++17.
Tato /Zc:char8_t
možnost je dostupná od verze 16.1 sady Visual Studio 2019. Povolí se automaticky, když zadáte /std:c++20
nebo později (například /std:c++latest
). Jinak je ve výchozím nastavení vypnutá.
Příklad
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
Nastavení této možnosti kompilátoru v sadě Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností> Vlastnosti konfiguraceC/C++>Příkazový řádek.
Do
/Zc:char8_t
podokna Další možnosti přidejte nebo/Zc:char8_t-
.