/Zc:char8_t
(Włącz typ char8_t języka C++20)
Opcja kompilatora /Zc:char8_t
umożliwia obsługę typu zgodnego char8_t
z językiem C++20. char8_t
to typ znaku używany do reprezentowania jednostek kodu UTF-8.
Składnia
/Zc:char8_t
[-
]
Uwagi
Opcja kompilatora /Zc:char8_t
char8_t
włącza słowo kluczowe typu określone w standardzie C++20. Powoduje to, że kompilator generuje u8
odpowiednio prefiksy znaków lub literałów ciągów jako lub typów, a nie jako const char8_t
const char
lub const char8_t[N]
const char[N]
typów. W języku C++17 tablice mogą char
być inicjowane przy użyciu u8
literałów ciągu. W języku C++20 ta inicjowanie jest źle sformułowana i powoduje błąd kompilatora C2440. To zachowanie może być zmianą powodującą niezgodność źródła. Kompilator można przywrócić jawnie zachowanie języka C++14 lub C++17, określając /Zc:char8_t-
.
Opcja /Zc:char8_t
jest dostępna, począwszy od programu Visual Studio 2019 w wersji 16.1. Jest ona włączana automatycznie po określeniu /std:c++20
lub nowszym (na przykład /std:c++latest
). W przeciwnym razie jest domyślnie wyłączona.
Przykład
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
Aby ustawić tę opcję kompilatora w programie Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilacji w programie Visual Studio).
Wybierz stronę właściwości wierszapolecenia konfiguracji >C/C++>.
Dodaj
/Zc:char8_t
lub/Zc:char8_t-
do okienka Dodatkowe opcje: