simplified case
abc.d:
import std.stdio;
template mytemp(T)
{
mixin subtemp!(T);
template subtemp(U)
{
void mytemp(T v)
{
writefln(v);
}
}
}
void main()
{
mytemp(3);
}
abc.d(3): template abc.mytemp(T) is not a function template
abc.d(17): template abc.mytemp(T) cannot deduce template function from argument types (int)
Comment #2 by razvan.nitu1305 — 2019-08-21T11:01:27Z
This bug report is invalid. mytemp is not an eponymous template because it has a single member that is the mixin. So when the call occurs the compiler first needs to identify what you are trying to call, thus it finds the mytemp template, but inside it there is no function, there's only a mixin => confusion for the compiler. This cannot be fixed, because you would have to instantiate the mixin before actually instantiating the template.
Closing as invalid.
Comment #3 by razvan.nitu1305 — 2023-03-27T12:07:36Z
*** Issue 11095 has been marked as a duplicate of this issue. ***