So __traits(getOverloads)
returns also templated members and __traits(isTemplate)
can select those members. Unfortunately, Parameters!
does not work with the templated member. How can I pass a symbol of T or A... to Parameters!
as desired type without instantiating the template?
fun(T, A...)(T arg, string foo, int bar, A args); // some overload
Assuming T is just an int
, I cannot apply this type. The compiler is forgetting the actual overload:
template getParams(alias overload) {
static if (__traits(isTemplate, overload)) {
alias typed = overload!int // error: fun(...) matches more than one template declaration
alias getParams = Parameters!typed;
}
}