| 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
Permalink
Reply