On Sunday, 23 June 2013 at 00:34:36 UTC, Timothee Cour wrote:
there's also this case:
template E8(T){
struct B{}
struct A{}
}

pragma(msg,__LINE__,":",getTemplate!(E8!(float))); => works with template
getTemplate(alias T : TI!TP, alias TI, TP...) specialization

pragma(msg,__LINE__,":",getTemplate!(E8!(float).A)); =>  ??
how to make the 2nd work?

is there something like:
template getTemplate(alias T : TI!TP.TE, alias TI, alias TE, TP...) {...}
available ?

E8!float.A itself is not a template instance, its parent is. I think it's correct for getTemplate to not compile in this case.

In the end, putting getTemplate!Foo and getTemplateArguments!Foo back together should lead to Foo again. I don't see what getTemplate!(E8!float.A) could return for that to hold.

Reply via email to