On Wednesday, 30 January 2019 at 05:14:20 UTC, Sobaya wrote:
I want to get a mangled name of a D function by
`core.demangle.mangle`, but I'm in trouble because there are no
ways to express a type of a function, which is used for a
template argument of `mangle`.
There's a way:
int add(int i, int j);
static assert(is(typeof(add) == typeof(*(int function(int,
int)).init)));
Unfortunately there's no dedicated syntax for it, unlike C++.
Weirdly enough, if you pragma(msg) a function type it prints it
out in C++ syntax (e.g. `int(int, int)`), but if you type it
yourself it won't compile.
Then there's this oddity:
https://issues.dlang.org/show_bug.cgi?id=19270