Search code examples
functiondmixins

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.


Solution

  • 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()