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