Thread overview | |||||
---|---|---|---|---|---|
|
January 14, 2016 Struct initialization using member syntax without variable | ||||
---|---|---|---|---|
| ||||
To initialize a struct with the member names a variable is required. Example:
struct Foo
{
int a;
int b;
}
Foo foo = { a: 3, b: 4 };
That's a bit annoying when you want to pass the struct to a function or return it.
Foo bar()
{
return { a: 3, b: 4 }; // error
}
void bar(Foo foo);
bar({ a: 3, b: 4 }); // error
Is there any reason for this limitation? I guess it will make function overloading more difficult, but that could easily be solved with the following syntax:
bar(Foo{ a: 3, b: 4 });
Or this:
bar(Foo(a: 3, b: 4));
This would also allow one to use "auto" when declaring a variable:
auto foo = Foo{ a: 3, b: 4 };
--
/Jacob Carlborg
|
January 14, 2016 Re: Struct initialization using member syntax without variable | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | Maybe there is some parsing difficulty, but if it's possible to add something like this, I think it would be nice. |
January 14, 2016 Re: Struct initialization using member syntax without variable | ||||
---|---|---|---|---|
| ||||
Posted in reply to w0rp | On 2016-01-14 13:22, w0rp wrote: > Maybe there is some parsing difficulty, but if it's possible to add > something like this, I think it would be nice. I hardly doubt it. -- /Jacob Carlborg |
Copyright © 1999-2021 by the D Language Foundation