On 01/29/2019 09:14 PM, 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`.
For example, it is wrong to use the type `int function(int,int)` to
express the type of `int add(int,int)`.
Because it expresses the type of a function POINTER, not just a function.
The fuction name in a binary compiled this function is "_D3addFiiZi",
but `mangle!(int function(int,int))("add")` returns "_D3addPFiiZi",
which includes "P" meaning POINTER.
How can I get the former one?
Thanks.
typeof works:
import core.demangle;
int add(int, int);
void main() {
alias F = typeof(add);
pragma(msg, mangle!F("add"));
}
Ali