/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

  1. 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).

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. Dodaj /Zc:char8_t lub /Zc:char8_t- do okienka Dodatkowe opcje: .

Zobacz też

/Zc (Zgodność)
/std (Określ wersję standardową języka)