开发者

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) ~ ")");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜