0
我最近决定改用从GCC到铛,我让我的使用宽字符常量以下警告:“中多余的字符宽字符常量被忽略“。下面是获取警告的代码:使用宽字符常量铿锵获取“的宽字符常量多余的字符忽略”错误
wstring& line;
…
for (wstring::iterator ch = line.begin(); ch != line.end(); ++ch)
switch (*ch) {
case L'│': *ch = L'|'; break;
case L'﹤': *ch = L'<'; break;
case L'﹥': *ch = L'>'; break;
case L'﹙': *ch = L'('; break;
case L'﹚': *ch = L')'; break;
default: break;
}
在此,在的情况下的条件的所有字符都高Unicode字符,并因此被视为由铛解析器多字节字符,显然(源代码是UTF-8编码)。
我的问题是什么是警告信息背后的意义。也就是说,究竟是什么被忽略。此外,鉴于此警告,我的程序是否按设计工作?
GCC没有给出此代码的任何警告,一切工作就像一个魅力。
嗯gcc从来没有任何问题在这里。有没有办法告诉clang正确处理UTF-8源文件,或者输入宽字符,以便铿锵理解它们? – 2010-07-27 14:07:01
http://github.com/bratsche/clang建议不要:IV。缺少功能/改进 Lexer: *源字符映射。 GCC支持ASCII和UTF-8。 – MSalters 2010-07-27 14:30:50