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

标签 c++ visual-c++ visual-studio-2019 c++20 char8-t

在 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 等效项是什么吗?

最佳答案

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

关于c++ - -fno-char8_t 的 MSVC 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59325910/

相关文章:

带有 SSIS 的 Azure SDK

c++ - Intellisense 不显示 Visual Studio 2019 中 cmake 项目的语法错误

sql-server - VS 2019 SSIS包无法添加SQL Server

c++ - 通过引用 C++ 中的构造函数传递堆栈分配的值

c++ - 在不同 CPU 上处理整数

c++ - 在 C++ 项目中使用 pcre2

C++ lambda 错误 : no appropriate default constructor available

c++ - C中简单表达式的奇怪输出,为什么?

c++ - 如何在 C++14 中衰减右值引用类型,同时保留左值引用?

c - 使用 _finddata_t->name 浏览子目录