在C++20中,
当迁移到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等效标志是什么吗?