C ++ 20에서 u8
문자열 리터럴은 char8_t
유형을 기반으로합니다 . 의도적으로 char const*
더 이상 변환하지 않습니다 .
const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20
물론 C ++ 20으로 마이그레이션 할 때 궁극적 인 목표는 완전히 새로운 동작 (위의 예 : 유형 변경)을 따르는 것입니다 str
. 그러나 타사 라이브러리로 인해 종종 즉시 가능하지 않습니다.
소개 하고 "조심" 하는 제안 char8_t
은 clang과 gcc -fno-char8_t
에 이전 동작으로 다시 전환 할 플래그 가 있음을 언급하고 언급합니다 (여전히 다른 C ++ 20 기능을 즐길 수는 있음).
두 번째 제안은 Microsoft가 유사한 플래그를 따르고 추가 할 것으로 기대하지만 설정 방법을 찾을 수 없었습니다 (적어도 VS 2019, 버전 16.4에서는).
그렇다면 MSVC에 해당하는 -fno-char8_t
것이 무엇인지 아는 사람 이 있습니까?