alf*_*lfC 6 c++ unicode gcc clang
此问题具有可能无法在所有浏览器中正确显示的unicode文本.
clang
现在(> 3.3)支持Unicode字符变量名 http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html#major-new-features.
然而一些特殊的角色仍然被禁止.
int main(){
double ? = 2.; // alpha, ok!
double ? = 99999.; // infinity, error
}
Run Code Online (Sandbox Code Playgroud)
赠送:
error: non-ASCII characters are not allowed outside of literals and identifiers
double ? = 99999.;
Run Code Online (Sandbox Code Playgroud)
?
(alpha)和?
(infinty)之间的根本区别是什么clang
?前者是unicode而后者不是unicode但同时不是ASCII?
是否有解决方法或选项允许这组字符clang
(或BTW in gcc
)?
注意:1)?
只是一个例子,有很多字符可能有用但也被禁止,比如?
或?
.2)我不是在问这个好主意,请把它作为技术问题.3)我对clang 3.4
Linux 中的C++编译器感兴趣(gcc 4.8.3
不支持这个).我gedit
使用UTF-8
编码和Unix/Linux
行结束保存源文件.4)添加其他正常的第一个字符无济于事:_?
答案指向肯定的NO.确实不允许某些范围,也不会很快.为了进一步向完全疯狂迈进,我发现的最佳选择是使用有效看起来相同的角色.(现在,这个我承认可能不是一个好主意.)这些替代可以在这里找到 http://shapecatcher.com/.结果(对不起,如果它伤害你的眼睛):
Run Code Online (Sandbox Code Playgroud)// double ? = 99999.; // still error // double ? = 99999.; // infinity negated still error double ? = 99999.; // letter oo double ? = 99999.; // letter OO // double ? = 99999.; // incomplete infinity still error
问题中提到的其他"替代"死亡铃声在允许的范围内:
?
,.
所以clang
文件说(强调我的):
此功能允许标识符包含某些Unicode字符, 如活动语言标准所指定 ;
E.1允许的字符范围[charname.allowed]
00A8,00AA,00AD,
00AF,00B2-00B5,00B7-00BA,00BC-00BE,00C0-00D6,00D8-00F6,00F8-00FF
0100-167F,1681-180D,180F-1FFF 200B-200D,202A-202E,203F-2040,2054,
2060-206F 2070-218F,2460-24FF,2776-2793,2C00-2DFF,2E80-2FFF
3004-3007,3021-302F,3031-303F
3040-D7FF F900-FD3D,FD40-FDCF,
FDF0-FE44,FE47-FFFD
10000-1FFFD,20000-2FFFD,30000-3FFFD,40000-4FFFD,50000-5FFFD,60000-6FFFD,70000-7FFFD,80000-8FFFD,90000-9FFFD,A0000-AFFFD,B0000-BFFFD,C0000-CFFFD,D0000- DFFFD,E0000-EFFFD
无穷大的代码221E
不包含在列表中.
供参考:以上代码转换为unicode字符(其中一些可能无法在所有浏览器/可用字体中正确显示).
¨, ª, ,
¯, ²-µ, ·-º, ¼-¾, À-Ö, Ø-ö, ø-ÿ
?-?, ?-?, ?-? ?-?, ?-?, ?-?, ?,
?-? ?-?, ?-?, ?-?, ?-?, ?-?
?-?, ?-?, ?-?
?-? ?-?, ?-?,
?-?, ?-?
-, -, -, -, -, -, -, -, -, -, -, -, -, -
Run Code Online (Sandbox Code Playgroud)
虽然N3146:C和C++的扩展标识符字符的建议确实提供了有关影响的一些细节,但我找不到涵盖所选范围基本原理的大量文档.
归档时间: |
|
查看次数: |
3279 次 |
最近记录: |