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