Why is this allowed

JN 666total at wp.pl
Wed Jul 1 19:38:27 UTC 2020


On Wednesday, 1 July 2020 at 15:57:24 UTC, Nathan S. wrote:
> On Tuesday, 30 June 2020 at 16:22:57 UTC, JN wrote:
>> Spent some time debugging because I didn't notice it at first, 
>> essentially something like this:
>>
>> int[3] foo = [1, 2, 3];
>> foo = 5;
>> writeln(foo);   // 5, 5, 5
>>
>> Why does such code compile? I don't think this should be 
>> permitted, because it's easy to make a mistake (when you 
>> wanted foo[index] but forgot the []). If someone wants to 
>> assign a value to every element they could do foo[] = 5; 
>> instead which is explicit.
>
> What's your opinion on using that syntax in the initial 
> declaration, like `float[16] foo = 0`?

I don't like it. I'd prefer:

float[16] foo = [ 0 ];

or

float[16] foo = { 0 };

or

float[16] foo(0);


More information about the Digitalmars-d-learn mailing list