Thread overview | |||||
---|---|---|---|---|---|
|
March 14, 2014 Array initialisation vs assignment | ||||
---|---|---|---|---|
| ||||
Hi All, I would expect both blocks of code below to behave in the same manner but they don't. --- void main() { int[] a = [1,2,3,4]; int[2][2] b = a; // fine, does an array copy } --- void main() { int[] a=[1,2,3,4]; int[2][2] b; b = a; // compile time error } --- Is it a bug or by design? (and if by design why?) Cheers, ed |
March 14, 2014 Re: Array initialisation vs assignment | ||||
---|---|---|---|---|
| ||||
Posted in reply to ed | ed: > void main() > { > int[] a = [1,2,3,4]; > int[2][2] b = a; // fine, does an array copy > } > Is it a bug or by design? That looks like a compiler bug. You are supposed to use a cast to do an assignment like that. Bye, bearophile |
March 14, 2014 Re: Array initialisation vs assignment | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Friday, 14 March 2014 at 23:10:57 UTC, bearophile wrote:
> ed:
>
>> void main()
>> {
>> int[] a = [1,2,3,4];
>> int[2][2] b = a; // fine, does an array copy
>> }
>
>> Is it a bug or by design?
>
> That looks like a compiler bug. You are supposed to use a cast to do an assignment like that.
>
> Bye,
> bearophile
OK, thanks I'll file it.
|
Copyright © 1999-2021 by the D Language Foundation