4
C++ 11引入了UTF-8,16和32的新字符串文字,其中u8
,u
和U
前缀,但我必须硬编码我想要的一个使用。我正在寻找一种方法来选择我想在编译时使用哪种编码(类似于typedef的工作原理)。在编译时为C++字符串文字选择默认类型和编码
用户定义的字符串文字似乎没有帮助,因为它们处理指定编码的字符串。
我在Pre C++ 11代码中看到使用短的宏如L("string")
在"string"
和L"string"
之间进行选择,但是我个人觉得这很丑陋。
是否可以整齐地选择默认类型和编码,还是必须使用宏选项?
是的,你需要一个宏,因为你需要制作令牌。我个人认为宏观本身并不丑陋,但它的需求是。 –
它不是关于字符串文字编码,而是大部分关于默认情况下应用程序将使用哪种字符串类型。是的,你没有其他选项'使用宏(至少在编译时)“ – zaufi
它也是关于编码,默认情况下''”'是一个实现定义的单字节编码而不是UTF-8,两者都使用'char'类型 – DrYap