首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >llvm-clang;包含unicode字符的函数/变量名

llvm-clang;包含unicode字符的函数/变量名
EN

Stack Overflow用户
提问于 2010-04-04 06:19:55
回答 1查看 612关注 0票数 5

我对在我的c++程序的函数/变量名称中使用unicode字符(如\apha)很感兴趣,我将在linux上使用clang++编译该程序。有没有人知道一个好的指南/规则列表,以确保一切都能正常编译/避免链接错误/ ...

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-01-18 12:47:56

Clang 3.0不支持标识符中的Unicode字符。最新的主干部分支持这一点,我相信目前有人正在努力完全实现这一点。

至于Clang何时支持它们,请看一下C++11 (n3242) 2.11 lex.name。

标识符中的所有字符必须与[a-zA-Z_0-9]或E.1中的字符集匹配:

代码语言:javascript
复制
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-EFFF

第一个字符必须与[a-zA-Z_]或E.1匹配,E.2除外:

代码语言:javascript
复制
0300-036F, 1DC0-1DFF, 20D0-20FF, FE20-FE2F

至于链接,我们需要看看你正在使用的C++ ABI。在本例中(Clang和Linux),它应该是安腾C++ ABI。

还有..。在找了很久之后,我唯一能找到的就是JNI,还有gcc的内设。当Clang实现这一功能时,它将使用与gcc相同的损坏。无论哪种方式,只要使用unicode标识符编译的所有代码都是使用相同的编译器编译的,它就会正确链接。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2572861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档