Why is (int[int] s = int[int].init) not allowed

Steven Schveighoffer schveiguy at gmail.com
Tue Dec 22 23:56:46 UTC 2020


On 12/22/20 5:44 PM, Daniel Kozak wrote:
> On Tue, Dec 22, 2020 at 10:15 PM Andre Pany via Digitalmars-d-learn 
> <digitalmars-d-learn at puremagic.com 
> <mailto:digitalmars-d-learn at puremagic.com>> wrote:
> 
>     Hi,
> 
>     I am really confused, why is this valid:
>     void sample(string[string] s = string[string].init){}
> 
>     while this causes syntax errors?
> 
>     void sample_invalid1(double[string] s = double[string].init){}
>     void sample_invalid2(int[int] s = int[int].init){}
> 
>     Kind regards
>     André
> 
> 
> As has been said this is an oddity in the grammar. But why would anyone 
> need to use this anyway?
> 
>    void sample_invalid2(int[int] s = int[int].init){}
> 
> seems really awful to me anyway.

Yeah:

void sample_valid(int[int] s = null)

-Steve


More information about the Digitalmars-d-learn mailing list