[DIP] In-place struct initialization
Enamex via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jul 31 06:39:58 PDT 2016
On Sunday, 31 July 2016 at 07:10:46 UTC, cym13 wrote:
> The proposed change is litteraly just equivalent to the already
> existing struct initialization, just made usable:
>
> struct S {
> int a;
> int b;
> }
>
> auto s = S(b:42);
> // equivalent to
> S s = { b:42 };
>
> Having the possibility to initialize structs without tying them
> to a variable
> proves useful when combined with functions that take this
> struct but those
> functions aren't directly impacted by the change.
I suggest extending the existing `S s = {field: value}` syntax to
allow specifying the type itself next to the field list and make
it usable generally everywhere.
So, instead:
takeThing(Thing{ field: val, num: 43 });
It shouldn't clash with anything else, I think.
More information about the Digitalmars-d
mailing list