On 08/24/2012 11:16 PM, timotheecour wrote:
how to get fully qualified name of a template function?
In the code below I want to get "util.mod.mymethod!(double)"
I tried everything (see below) to no avail, it just returns "mymethod";
The closest I get is demangle(mangledName!(fun)), which shouldn't be
hard to convert to what I want, but demangle is runtime, not compile time.

Way back when, Don wrote some code which does just this. Recently I have been whacking with a hammer, so while you're waiting for fullyQualifiedName to not fail, you might try it.

https://bitbucket.org/ariovistus/pyd/src/19bef7310180/infrastructure/meta

module util.mod;
import meta.Nameof;

void mymethod(T)(){}
void main(){ fun_aux!(mymethod!double);}
void fun_aux(alias fun)(){
    pragma(msg, qualifiednameof!fun);
    pragma(msg, prettynameof!fun);
}

gives

util.mod.mymethod.mymethod
void util.mod.mymethod!(double).mymethod()

Reply via email to