Struct Initialization syntax
Jacob Carlborg
doob at me.com
Mon Jul 23 19:11:24 UTC 2018
On 2018-07-23 18:26, Seb wrote:
> tl;dr: the currently proposed syntax options are:
>
>
> ---
> struct S
> {
> int a = 2, b = 4, c = 6;
> }
> void foo()
> {
> bar(S({c: 10})); // Option 1
> bar(S(c: 10)); // Option 2
> bar(S{c: 10}); // Option 3
> }
> ---
>
> So the struct-initialization DIP has been stalled for too long and I
> think it's time we finally get this story done.
> I personally prefer option 2, but this might be in conflict to named
> arguments which we hopefully see in the near future too. Hence, I'm
> leaning forward to proposing Option 1 as the recommended Option for the
> DIP (that's also what the PoC DMD PR implements). What's your take on this?
>
> DIP: https://github.com/dlang/DIPs/pull/71
> Rendered view:
> https://github.com/wilzbach/DIPs/blob/struct-initialization/DIPs/DIP1xxx-sw.md
Talking about future potential features, Option 1 could be in conflict
with a tuple with named elements. Option 2 could be in conflict with
named parameters, true, but named parameters could also have a different
syntax, i.e. foo(a = 3, b = 4), this is what Scala is using.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list