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

问题描述 投票:7回答:1

在C ++ 20中,u8字符串文字基于char8_t类型。他们故意不再转换为char const*

const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20

当然,迁移到C ++ 20时的最终目标是完全采用新行为(在上面的示例中:更改str的类型)。但是,由于有了第三方库,通常无法立即实现。

introduce"remedy" char8_t的建议可以预期并提到在clang和gcc中有-fno-char8_t标志可以切换回旧的行为(同时仍然可以使用其他C ++ 20功能)。

第二个提案设定了微软将遵循并添加类似标志的期望,但我无法找到如何进行设置(至少在VS 2019版本16.4中)。

那么有人知道-fno-char8_t的MSVC是什么吗?

c++ visual-c++ visual-studio-2019 c++20 char8-t
1个回答
5
投票

自16.1起,存在一致性编译器标志/Zc:char8_t-。减号告诉编译器在使用C ++ 20时在此<>使用一致性模式。相反,可以使用/Zc:char8_t-启用它。

© www.soinside.com 2019 - 2024. All rights reserved.