-fno-char8_t에 해당하는 MSVC는 무엇입니까?


9

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것이 무엇인지 아는 사람 이 있습니까?

답변:


8

16.1부터 적합성 컴파일러 플래그가 /Zc:char8_t-있습니다. 빼기는 C ++ 20을 사용할 때 컴파일러가 여기서 적합성 모드를 사용 하지 않도록 지시합니다 . 반대로, /Zc:char8_t활성화하는 데 사용할 수 있습니다.


1
오, 좋은 자리. 나는 하나도 없다는 답을 쓰려고했다. :
Lightness Races Orbit

1
@LightnessRaceswithMonica 참조를 추가해 주셔서 감사합니다!
기 illa 라 치코

내가 뭔가 를 기여해야한다고 생각 했다 : P
Orbit in Lightbit

내가 알고 싶은 것이기 때문에 조금 개선되었습니다. P
Acorn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.