/Zc:char8_t
(Povolení char8_t typu C++20)
Možnost kompilátoru /Zc:char8_t
umožňuje podporu typu odpovídající jazyku char8_t
C++20. char8_t
je typ znaku, který se používá k reprezentaci jednotek kódu UTF-8.
Syntaxe
/Zc:char8_t
[-
]
Poznámky
Možnost /Zc:char8_t
kompilátoru char8_t
povolí klíčové slovo typu zadané ve standardu C++20. Způsobí, že kompilátor vygeneruje u8
předponu znaku nebo řetězcové literály jako const char8_t
nebo const char8_t[N]
typy, nikoli jako const char
nebo const char[N]
typy. V jazyce C++17 lze pole char
inicializovat pomocí u8
řetězcových literálů. V jazyce C++20 je tato inicializace špatně vytvořená a způsobuje chybu kompilátoru C2440. Toto chování může být změna způsobující chybu zdroje. Explicitně můžete vrátit kompilátor do chování C++14 nebo C++17 zadáním /Zc:char8_t-
.
Tato /Zc:char8_t
možnost je dostupná od sady Visual Studio 2019 verze 16.1. Povolí se automaticky, když zadáte nebo později ( /std:c++20
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í příkazového řádku C/C++>Vlastnosti>konfigurace.
Přidejte
/Zc:char8_t
nebo/Zc:char8_t-
do podokna Další možnosti: