Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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_tlub/Zc:char8_t-do okienka Dodatkowe opcje: .