Sdílet prostřednictvím


/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

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. Přidejte /Zc:char8_t nebo /Zc:char8_t- do podokna Další možnosti:

Viz také

/Zc (Shoda)
/std (Určení standardní verze jazyka)