标签: c++ c++11 unicode character-encoding string-literals
C ++ 11为UTF-8,16和32引入了带有u8,u和U前缀的新字符串文字,但我必须硬编码我想要哪一个使用。我正在寻找一种方法来选择我想在编译时使用哪种编码(类似于typedef的工作方式)。
u8
u
U
用户定义的字符串文字似乎没有帮助,因为它们处理指定编码的字符串。
我在前C ++ 11代码中看到使用L("string")之类的短宏来在"string"和L"string"之间进行选择,但我个人觉得这很难看。
L("string")
"string"
L"string"
是否可以巧妙地选择默认类型和编码,还是必须使用宏选项?
答案 0 :(得分:0)
不幸的是,这个问题的解决方案是使用宏。虽然@Nadim Farhat指出你可以用gcc做一定数量的选择但它绝不是一个可移植的解决方案。