5

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

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

我在 C++11 之前的代码中看到过使用短宏,例如在L("string")两者之间进行选择"string"L"string"但我个人觉得这很丑陋。

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

4

1 回答 1

0

不幸的是,这个问题的解决方案是使用宏。尽管@Nadim Farhat指出您可以使用 gcc 进行一定程度的选择,但这绝不是一个可移植的解决方案。

于 2013-08-10T17:46:02.907 回答