C++11 为 UTF-8、16 和 32 引入了新的字符串文字,带有 u8
、u
和 U
前缀,但是我必须硬编码我想使用哪个。我正在寻找一种方法来选择我想在编译时使用的编码(类似于 typedef 的工作方式)。
用户定义的字符串文字似乎没有帮助,因为它们处理指定编码的字符串。
我在 C++11 之前的代码中看到使用一个简短的宏,例如 L("string")
在 "string"
和 之间进行选择>L"string"
但我个人觉得它很难看。
是否可以巧妙地选择默认类型和编码,或者我必须使用宏选项?
最佳答案
不幸的是,这个问题的解决方案是使用宏。虽然@Nadim Farhat指出您可以使用 gcc 进行一定数量的选择,这绝不是一种可移植的解决方案。
关于c++ - 在编译时为 C++ 字符串文字选择默认类型和编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18057877/