C++11 为 UTF-8、16 和 32 引入了带有u8
,u
和U
前缀的新字符串文字,但我必须硬编码我想使用哪个。我正在寻找一种方法来选择我想在编译时使用的编码(类似于 typedef 的工作方式)。
用户定义的字符串文字似乎没有帮助,因为它们适用于指定编码的字符串。
我在 C++11 之前的代码中看到过使用短宏,例如在L("string")
两者之间进行选择"string"
,L"string"
但我个人觉得这很丑陋。
是否可以巧妙地选择默认类型和编码,或者我必须使用宏选项?