On Sunday, 15 June 2025 at 10:51:37 UTC, Nick Treleaven wrote:
An untyped parameter does make the literal an actual template:
```d
pragma(msg, __traits(isTemplate, (x) {})); // true
```
It can be instantiated with a type parameter.
Therefore in the case discussed, the code `(_){}' declares a
template. This template is used as an actual parameter to a
parameterized mixin.
If used and in general, templates must be instantiated and the
instantiatons stored for later use.
It seems, that for a parameterized mixin those actual
instantiatons are not deleted when they do not conform with the
formal parameter of the mixin.