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.