template shim(size_t i, T)
enum shim =
Replace!(q{
alias Params[$i] __pyd_p$i;
$override ReturnType!(__pyd_p$i.func_t) $realname(ParameterTypeTuple!(__pyd_p$i.func_t) t) $attrs {
return __pyd_get_overload!("$realname", __pyd_p$i.func_t).func!(ParameterTypeTuple!(__pyd_p$i.func_t))("$name", t);
}
alias T.$realname $realname;
}, "$i", i, "$realname", realname, "$name", name, "$attrs", attrs_to_string(functionAttributes!func_t) ~ " " ~ tattrs_to_string!(func_t)(), "$override", (variadicFunctionStyle!func == Variadic.no ? "override" : ""));