Why is this allowed

Steven Schveighoffer schveiguy at gmail.com
Tue Jun 30 16:37:12 UTC 2020


On 6/30/20 12:22 PM, 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.

That's a feature. I don't think it's going away. The problem of 
accidental assignment is probably not very common.

-Steve


More information about the Digitalmars-d-learn mailing list