c++ - 在编译时为 C++ 字符串文字选择默认类型和编码

标签 c++ c++11 unicode character-encoding string-literals

C++11 为 UTF-8、16 和 32 引入了新的字符串文字,带有 u8uU 前缀,但是我必须硬编码我想使用哪个。我正在寻找一种方法来选择我想在编译时使用的编码(类似于 typedef 的工作方式)。

用户定义的字符串文字似乎没有帮助,因为它们处理指定编码的字符串。

我在 C++11 之前的代码中看到使用一个简短的宏,例如 L("string")"string" 之间进行选择>L"string" 但我个人觉得它很难看。

是否可以巧妙地选择默认类型和编码,或者我必须使用宏选项?

最佳答案

不幸的是,这个问题的解决方案是使用宏。虽然@Nadim Farhat指出您可以使用 gcc 进行一定数量的选择,这绝不是一种可移植的解决方案。

关于c++ - 在编译时为 C++ 字符串文字选择默认类型和编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057877/

相关文章:

c++ - 如何调试 C++ 动态库?

javascript - TLS WebSocket 服务器与 firefox 客户端一起工作,但不与 chrome 客户端一起工作

linux - 使用linux或python删除特殊字符

javascript - 在javascript中将ú转换为u

c++ - 当 Unicode 模式打开时打印到 VS2010 中的调试输出

如果一次性直接输入,C++ 程序将失败

c++ - EnumWindows() 捕获选项卡进程 (Google Chrome) C++

c++ - 如何编写以负数结尾的循环 (MyProgrammingLab 11138)

函数模板的 C++ 问题(未找到实例)

c++ - 在 std::thread 中使用无限循环来增加和显示一个值