Clang 3.0 không hỗ trợ các ký tự Unicode trong số nhận dạng. Thân cây mới nhất đã hỗ trợ một phần cho điều này, và tôi tin rằng ai đó hiện đang làm việc để thực hiện điều này đầy đủ.
Khi Clang hỗ trợ chúng, hãy xem C++ 11 (n3242) 2.11 [lex.name].
Tất cả các nhân vật trong một định phải phù hợp [a-zA-Z_0-9]
hoặc tập các nhân vật trong 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
Ký tự đầu tiên phải phù hợp [a-zA-Z_]
hoặc E.1 trừ E.2:
0300-036F, 1DC0-1DFF, 20D0-20FF, FE20-FE2F
Đối với liên kết, chúng ta cần phải xem xét C++ ABI bạn đang sử dụng. Trong trường hợp này (Clang và Linux), nó sẽ là Itanium C++ ABI.
Và ... sau khi tìm kiếm xung quanh mãi mãi, những điều duy nhất tôi có thể tìm thấy trên JNI và gcc internals. Khi Clang thực hiện điều này, nó sẽ sử dụng xoài giống như gcc. Dù bằng cách nào, miễn là tất cả các mã bạn biên dịch bằng cách sử dụng định danh unicode được biên dịch với trình biên dịch tương tự, nó sẽ liên kết chính xác.
Chỉ vì tò mò, bạn có đang di chuyển từ APL không? –
'clang ++' 3.4 hỗ trợ điều này. Kể từ 3.3 (http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html#major-new-features) – alfC