In the following code, calls to f2 are all rejected. That is a bit weird.
```
import std;
struct S
{
uint a;
uint b;
}
void f1(uint a, uint b){}
void f2(Tuple!(uint, uint) a){}
void main()
{
S s;
uint[2] a;
f1(s.tupleof); // OK
f1(a.tupleof); // OK
f2(s.tupleof); // NG
f2(a.tupleof); // NG
}
```
The reason for that is obviously that D does not do implict construction. In case D got first class citizen tuples this would have to work.
Comment #1 by robert.schadek — 2024-12-01T16:43:18Z