Array literals' default type

bearophile bearophileHUGS at lycos.com
Thu Oct 8 11:23:23 PDT 2009


Andrei Alexandrescu:

> 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.

double[] is safer and more flexible, so I think that has to be the default. The double[3] is a (very useful) optimization.

auto c = [2, 3.14, 6.023e22];
=> double[]

double[$] c = [2, 3.14, 6.023e22];
=> double[3]

Bye,
bearophile



More information about the Digitalmars-d mailing list