On 13.01.2018 23:57, Timothee Cour wrote:
the DIP says this replace std.typecons.TypeTuple however no mention is
made of named arguments, so I don't see how they could be a
replacement (nor how would that allow for a migration path) without
mentioning a word on this, eg:

what would be the equivalent of this ?
` writeln(tuple!("x", "y", "z")(2, 3, 4).y); `

It would continue to work the same way.

I did consider adding a proposal for built-in named tuple syntax:

writeln((x: 2, y: 3, z: 4).y);

(int a, double b) t = (a: 1, b: 2.0);
int x = t.a;
double y = t.b;

But I decided against it to keep the DIP focused, and because of potential future-proofing hazards related to named arguments. (For Phobos tuples, name mismatches are simply ignored when converting one named tuple into another, which I'm not sure is the best possible behavior, but the goal of this DIP is not to fight this design.)

Reply via email to