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

Reply via email to