Clang 3.0 unterstützt keine Unicode-Zeichen in Bezeichnern. Der neueste Trunk unterstützt dies teilweise, und ich glaube, dass jemand daran arbeitet, dies vollständig zu implementieren.
Wenn Clang sie unterstützt, sehen Sie sich C++ 11 (n3242) 2.11 [lex.name] an.
Alle Zeichen in einem Identifikator muss [a-zA-Z_0-9]
oder den Satz von Zeichen in E.1 entsprechen:
0300-036F, 1DC0-1DFF, 20D0-20FF, FE20-FE2F
:
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
Das erste Zeichen [a-zA-Z_]
oder E.1 ohne E.2 übereinstimmen
Zum Verknüpfen müssen wir uns die C++ - ABI ansehen, die Sie verwenden. In diesem Fall (Clang und Linux) wäre es das Itanium C++ ABI.
Und ... nach der Suche für immer, die einzigen Dinge, die ich finden konnte waren auf JNI und GCC Internals. Wenn Clang dies implementiert, wird dasselbe Mangling wie gcc verwendet. In beiden Fällen wird der gesamte Code, den Sie mithilfe von Unicode-IDs kompilieren, mit dem gleichen Compiler kompiliert.
Nur aus Neugier, migrieren Sie von APL? –
'clang ++' 3.4 unterstützt dies. Seit 3.3 (http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html#major-new-features) – alfC