我想使用新的C ++ u8字符串文字前缀(reference)。
但是我使用的代码库已经将typedefs u8 用作 unsigned char 。 我实际上无法移动标题或围绕它们#undef。
我该如何解决这个问题?
答案 0 :(得分:13)
将u8
定义为宏并不重要。字符串文字,无论是否具有编码前缀,都是单个预处理器标记。 u8
前缀不会进行宏替换。附录C中有一个例子可以证明这一点:
#define u8 "abc"
const char *s = u8"def"; // Previously "abcdef", now "def"