gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 19:22:17 24 4
gpt4 key购买 nike

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

谢谢!

最佳答案

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

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

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

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:
0300-036F, 1DC0-1DFF, 20D0-20FF, FE20-FE2F

至于链接,我们需要看一下你使用的C++ ABI。在这种情况下(Clang 和 Linux),它将是 Itanium C++ ABI。

而且……在四处寻找之后,我唯一能找到的就是 JNI 和 gcc 内部结构。当 Clang 确实实现了这一点时,它将使用与 gcc 相同的修改。无论哪种方式,只要您使用 unicode 标识符编译的所有代码都是使用相同的编译器编译的,它就会正确链接。

关于unicode - llvm-clang;包含 unicode 字符的函数/变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com