Clang 3.0 no admite caracteres Unicode en los identificadores. El último tronco tiene soporte parcial para esto, y creo que alguien está trabajando actualmente para implementarlo completamente.
En cuanto a cuando Clang los admite, eche un vistazo a C++ 11 (n3242) 2.11 [lex.name].
Todos los caracteres de un identificador debe coincidir [a-zA-Z_0-9]
o el conjunto de caracteres en 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
El primer carácter debe coincidir [a-zA-Z_]
o E.1 excluyendo E.2:
0300-036F, 1DC0-1DFF, 20D0-20FF, FE20-FE2F
En cuanto a la vinculación, tenemos que echar un vistazo a la ABI de C++ que está utilizando. En este caso (Clang y Linux) sería el Itanium C++ ABI.
Y ... después de buscar por siempre, las únicas cosas que pude encontrar fueron en JNI, y gcc internals. Cuando Clang lo implemente, usará el mismo cambio que gcc. De cualquier manera, siempre que todo el código que compile usando identificadores Unicode se compile con el mismo compilador, se vinculará correctamente.
Solo por curiosidad, ¿está migrando de APL? –
'clang ++' 3.4 lo admite. Desde 3.3 (http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html#major-new-features) – alfC