【问题标题】:What's the MSVC equivalent for -fno-char8_t?-fno-char8_t 的 MSVC 等效项是什么?
【发布时间】:2020-04-07 02:29:09
【问题描述】:

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

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

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

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】:

    从 16.1 开始,有一致性编译器标志 /Zc:char8_t-。减号告诉编译器在使用 C++20 时在此处使用一致性模式。相反,/Zc:char8_t 可以用来开启它。

    【讨论】:

    • 哦,好地方。我正要写一个答案说没有:)
    • @LightnessRaceswithMonica 感谢您添加参考!
    • 认为我应该贡献一些东西 :P
    • 也稍微改进了一下,因为这是我想知道的;所以我也应该做出贡献:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2018-11-12
    • 2012-10-16
    • 2010-10-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多