January 16, 2007
D allows you to do something like:

uint[3] temp;
temp[] = 42;

Thus allowing you to set the initial state without having to write a loop. Going from this, it seems like you should be able to do something like:

struct Test {
  uint a;
}
Test[3] temp;
temp[].a = 42;

Or:

temp[] = {
 a : 42
}

But neither of these seem to work. Is there a method for doing this?

If not then I guess I would like to offer this as an addition to the language following from the existing syntax. It seems like you should be able to do it, given the way an array of a basic type can be handled.

Thank you,
Chris
January 16, 2007
Chris Williams wrote:
> D allows you to do something like:
> 
> uint[3] temp;
> temp[] = 42;
> 
> Thus allowing you to set the initial state without having to write a loop.
> Going from this, it seems like you should be able to do something like:
> 
> struct Test {
>   uint a;
> }
> Test[3] temp;
> temp[].a = 42;
> 
> Or:
> 
> temp[] = {
>  a : 42
> }
> 
> But neither of these seem to work. Is there a method for doing this?
> 
> If not then I guess I would like to offer this as an addition to the language
> following from the existing syntax. It seems like you should be able to do it,
> given the way an array of a basic type can be handled.
> 
> Thank you,
> Chris

This might make potential sense as a new addition to ArrayOps, one of the features deferred to "2.0".  It means being able to do things like (array1[] += array2[]) so its in roughly the same ballpark.  I know I wouldn't mind having it.  (It'd make things like delegate arrays rather nifty as well... (array[](foo, bar);).)

-- Chris Nicholson-Sauls