appending newly initialized struct to array

simendsjo simendsjo at gmail.com
Tue Apr 17 14:00:53 PDT 2012


On Tue, 17 Apr 2012 22:28:31 +0200, maarten van damme  
<maartenvd1994 at gmail.com> wrote:

> Just for fun I decided to complete some codejam challenges in D. At some
> point I wanted to add structs to an array but I got a compiler error.  
> What
> am I doing wrong?
>
> code:
> struct test{
> int x;
> int y;
> }
> void main(){
> test[] why;
> why~={3,5};
> }
>
> error:
> wait.d(7): found '}' when expecting ';' following statement
> wait.d(8): found 'EOF' when expecting ';' following statement
> wait.d(8): found 'EOF' when expecting '}' following compound statement
>
> Is there any reason a why this wouldn't work?

Sounds like a bug. C style initializers work in other cases:

struct S { int i; }
void main() {
     S[] arr;
     S s = { 1 };
     arr ~= S(1);
     // But the following barfs
     //arr ~= { 1 };
     //arr ~= { i:1 };
     //arr[0] = { 1 };
}


More information about the Digitalmars-d-learn mailing list