“-fno-char8_t”的MSVC等效选项是什么?

10
在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功能)。第二个提案设定了微软将跟随并添加类似标志的期望,但我无法找到如何设置它(至少在VS 2019,版本16.4中)。那么,有人知道-fno-char8_t的MSVC等效标志是什么吗?
1个回答

10

从16.1版本开始,有一个符合度编译器选项/Zc:char8_t-。减号告诉编译器在使用C++20时不要使用符合度模式。/Zc:char8_t则相反,可以用于启用符合度模式。


1
哦,好眼力。我正要写一个回答说没有 :) - Lightness Races in Orbit
1
@LightnessRaceswithMonica,感谢您添加参考! - Guillaume Racicot
我想我应该贡献点什么 :P - Lightness Races in Orbit
我稍微改进了一下,因为这是我想知道的东西;所以我也应该做出贡献 :P - Acorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接