Empty Associative Aarray Literal
I want to have one of the parameters on a function be optional. The problem is, is that it's a AA and D does not seem to support empty AA literals. Observe: string func(int a, int[int] b = []) { return "mem1"; } void main() { func(1); } $ dmd test test.d(8): Error: cannot implicitly convert expression ([]) of type void[] to int[int] This doesn't work either string func(int a, int[int] b = int[int].init) { return "mem1"; } void main() { func(1); }
Re: Empty Associative Aarray Literal
On Thursday, 3 March 2016 at 22:06:54 UTC, Jack Stouffer wrote: I want to have one of the parameters on a function be optional. The problem is, is that it's a AA and D does not seem to support empty AA literals. Observe: string func(int a, int[int] b = []) { return "mem1"; } void main() { func(1); } $ dmd test test.d(8): Error: cannot implicitly convert expression ([]) of type void[] to int[int] This doesn't work either string func(int a, int[int] b = int[int].init) { return "mem1"; } void main() { func(1); } Use null: string func(int a, int[int] b = null) { return "mem1"; } void main() { func(1); }
Re: Empty Associative Aarray Literal
On 03/03/2016 02:06 PM, Jack Stouffer wrote: This doesn't work either string func(int a, int[int] b = int[int].init) { Parentheses around int[int] works though. I don't know whether it's a bug. string func(int a, int[int] b = (int[int]).init) { Ali