/Zc:char8_t
(C++20 char8_t 형식 사용)
/Zc:char8_t
컴파일러 옵션을 사용하면 C++20 준수 char8_t
형식을 지원할 수 있습니다. char8_t
는 UTF-8 코드 단위를 나타내는 데 사용되는 문자 형식입니다.
구문
/Zc:char8_t
[-
]
설명
/Zc:char8_t
컴파일러 옵션을 사용하면 C++20 표준에 지정된 형식 키워드를 사용할 수 char8_t
있습니다. 이로 인해 컴파일러는 접두사 문자 또는 문자열 리터럴을 각각 as 또는 const char8_t[N]
형식이 아닌 형식으로 const char8_t
const char
생성 u8
합니다const char[N]
. C++17에서는 문자열 리터럴을 char
사용하여 u8
배열을 초기화할 수 있습니다. C++20에서 이 초기화의 형식이 잘못되어 컴파일러 오류 C2440이 발생합니다. 이 동작은 소스 호환성이 손상되는 변경일 수 있습니다. 를 지정하여 컴파일러를 C++14 또는 C++17 동작으로 명시적으로 되돌릴 수 있습니다 /Zc:char8_t-
.
이 /Zc:char8_t
옵션은 Visual Studio 2019 버전 16.1부터 사용할 수 있습니다. 지정하거나 나중에 지정할 /std:c++20
때 자동으로 사용하도록 설정됩니다(예: /std:c++latest
). 그렇지 않으면 기본적으로 꺼져 있습니다.
예시
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
Visual Studio에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.
추가 옵션: 창에 추가
/Zc:char8_t
하거나/Zc:char8_t-
추가합니다.