/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 표준에 지정된 형식 키워드(keyword) 사용할 수 char8_t 있습니다. 이로 인해 컴파일러는 접두사 문자 또는 문자열 리터럴을 각각 as 또는 const char8_t[N] 형식이 아닌 형식으로 const char8_tconst 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에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.

  3. 추가 옵션: 창에 추가 /Zc:char8_t 하거나 /Zc:char8_t- 추가합니다.

참고 항목

/Zc (규칙)
/std(언어 표준 버전 지정)