Is there a way to convert a function variable to a string in D?
Is there any way, given a function variable, to get the name of the function as a string? For example, if I have:
void function(int) func;
Is there some开发者_如何学编程 function x() such that I could get:
x(func) == "func";
? I feel like this would be possible using mixins, but I'm confused as to how to implement this.
func.stringof
is what you need.
You could also make a template:
template Name(alias Func) { enum Name = Func.stringof; }
void func() { }
pragma(msg, Name!(func)); //prints func()
Simplest solution that comes to my mind:
You can have its name stored in a string, and mixin
'ed where necessary, something like:
string func_name = "func";
...
int param = 294;
mixin(func_name ~ "(" ~ to!string(param) ~ ")");
精彩评论