You can't have a template inside an aggregate with the name "this".
This prevents one from creating an advanced function template.
This works:
struct S {
this(int i)(float f) {}
}
This doesn't:
struct S {
template this(int i) {
this(float f) {}
}
}
Comment #1 by nick — 2022-09-14T13:23:25Z
Technically, the 2nd form is not a function template because there's no identifier. The first example is a constructor template. Do you have a compelling reason why the 2nd form should be supported?