On Saturday, 2 September 2017 at 20:02:37 UTC, bitwise wrote:
On Saturday, 2 September 2017 at 18:28:02 UTC, Moritz Maxeiner
wrote:
In UTF8:
--- utfmangle.d ---
void fun_ༀ() {}
pragma(msg, fun_ༀ.mangleof);
-------------------
---
$ dmd -c utfmangle.d
_D6mangle7fun_ༀFZv
---
Only universal character names for identifiers are allowed,
though, as per [1]
[1] https://dlang.org/spec/lex.html#identifiers
What I intend to do is this though:
void fun(string s)() {}
pragma(msg, fun!"ༀ".mangleof);
which gives:
_D7mainMod21__T3funVAyaa3_e0bc80Z3funFNaNbNiNfZv
where "e0bc80" is the 3 bytes of "ༀ".
Interesting, I wasn't aware of that (though after thinking about
it, it does make sense, as identifiers can only have visible
characters in them, while a string could have things such as
control characters inside), thanks! That behaviour is defined
here [1], btw (the line `CharWidth Number _ HexDigits`).
[1] https://dlang.org/spec/abi.html#Value