First Draft: Implicit Type Template Instantiation via Constructors

Sebastiaan Koppe mail at skoppe.eu
Tue May 13 06:06:54 UTC 2025


On Wednesday, 12 March 2025 at 00:20:55 UTC, Meta wrote:
> This DIP is a partial resurrection of DIP 40 
> (https://wiki.dlang.org/DIP40) by me and Dennis Korpel. Dennis 
> is working on the implementation 
> (https://github.com/dlang/dmd/pull/16910) while I am writing 
> the DIP.
>
> The purpose of this DIP is to propose a new avenue for Implicit 
> Template Instantiation (ITI) via constructors. Currently (that 
> I'm aware of) D only does Implicit _Function_ Template 
> Instantiation (IFTI); the proposal is to extend this implicit 
> instantiation to types as well, via their constructors.
>
> [...]
>
> The DIP:
> https://github.com/MetaLang/DIPs/blob/dip1050/DIPs/DIP1050.md

Makes a lot of sense to me.

What about implicit constructors though?

```
struct Pair(T,U) {
     T t;
     U u;
}
void main() {
     auto p = Pair(1,"string");
}
```


More information about the dip.development mailing list