Re: Why is "array operation without destination memory not allowed"?

2018-01-06 Thread Lily via Digitalmars-d-learn
On Saturday, 6 January 2018 at 23:17:53 UTC, Ali Çehreli wrote: So, apparently a[] * 2 is not an expression in D. The reason must be for performance. If a[]*2 were an expression, the runtime would have to allocate memory and put the results there. Assigning that memory then to b[] would

Re: Why is "array operation without destination memory not allowed"?

2018-01-06 Thread Ali Çehreli via Digitalmars-d-learn
On 01/06/2018 03:08 PM, Lily wrote: It seems a bit silly that I have to write int[] a = [1, 2, 300, -29]; int[] b; b.length = 4; b[] = a[] * 2; writeln(b); to do what I would expect int[] a = [1, 2, 300, -29]; writeln(a[] * 2); to do. What am I not understanding? So, apparently a[] * 2 is

Re: Why is "array operation without destination memory not allowed"?

2018-01-06 Thread Adam D. Ruppe via Digitalmars-d-learn
On Saturday, 6 January 2018 at 23:08:14 UTC, Lily wrote: What am I not understanding? Where do you expect it to put the result?

Why is "array operation without destination memory not allowed"?

2018-01-06 Thread Lily via Digitalmars-d-learn
It seems a bit silly that I have to write int[] a = [1, 2, 300, -29]; int[] b; b.length = 4; b[] = a[] * 2; writeln(b); to do what I would expect int[] a = [1, 2, 300, -29]; writeln(a[] * 2); to do. What am I not understanding?