解决typedef u8使用C ++ 11 u8字符串文字

时间:2018-02-28 05:05:52

标签: c++ c++11 typedef string-literals

我想使用新的C ++ u8字符串文字前缀(reference)。

但是我使用的代码库已经将typedefs u8 用作 unsigned char 。 我实际上无法移动标题或围绕它们#undef。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:13)

u8定义为宏并不重要。字符串文字,无论是否具有编码前缀,都是单个预处理器标记。 u8前缀不会进行宏替换。附录C中有一个例子可以证明这一点:

#define u8 "abc"
const char *s = u8"def";  // Previously "abcdef", now "def"