Array literals' default type
Don
nospam at nospam.com
Fri Oct 9 01:02:24 PDT 2009
Andrei Alexandrescu wrote:
> Consider:
>
> auto c = [ 2.71, 3.14, 6.023e22 ];
> c ~= 2.21953167;
>
> Should this work? Currently it doesn't because c's type is deduced as
> double[3].
>
> The literal can initialize either double[3] or double[], so the question
> is only what the default should be when "auto" is used.
>
>
> Thoughts?
>
> Andrei
I agree with the others who say immutable(double)[].
Also, I don't understand why type inference is determined only by the
first member. When patching your ICE bug 3374 just now I was struck by
how simple it would be to determine the tightest type in the array.
auto c = [0, 2.5, 5, 7.5, 10];
--> should be immutable(double)[].
I guess Walter was just worried about how complicated the rules would
become? There's clearly no implementation difficulty.
More information about the Digitalmars-d
mailing list