/Zc:char8_t
(Włącz typ char8_t języka C++20)
Opcja /Zc:char8_t
kompilatora umożliwia obsługę typów zgodnych z językiem char8_t
C++20. char8_t
jest typem znaków używanym do reprezentowania jednostek kodu UTF-8.
Składnia
/Zc:char8_t
[-
]
Uwagi
Opcja /Zc:char8_t
kompilatora 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 const char8_t
lub const char8_t[N]
typów, a nie jako const char
lub const char[N]
typów. W języku C++17 tablice char
obiektów mogą być inicjowane przy użyciu u8
literałów ciągu. W języku C++20 ta inicjalizacja jest źle sformułowana i powoduje błąd kompilatora C2440. Takie zachowanie może być zmianą powodującą niezgodność źródła. Aby jawnie przywrócić zachowanie kompilatora w języku C++14 lub C++17, należy określić wartość /Zc:char8_t-
.
Ta /Zc:char8_t
opcja jest dostępna od wersji 16.1 programu Visual Studio 2019. Jest ona włączana automatycznie po określeniu /std:c++20
lub nowszym (na przykład /std:c++latest
). W przeciwnym razie jest on domyślnie wyłączony.
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 kompilowania w programie Visual Studio).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
Dodaj
/Zc:char8_t
lub/Zc:char8_t-
do okienka Dodatkowe opcje: .