array literal element types

Simen Kjaeraas simen.kjaras at gmail.com
Fri Nov 13 04:45:04 PST 2009


Robert Jacques <sandford at jhu.edu> wrote:

> On Thu, 12 Nov 2009 16:42:45 -0500, Walter Bright  
> <newshound1 at digitalmars.com> wrote:
>
>> Currently, the type is determined by the type of the first element and  
>> the rest are implicitly cast to it.
>>
>> I propose changing it to being the type produced by applying the ?:  
>> logic repeatedly to all the elements.
>
> Given how numeric literals currently work:
> vote--
>
> for example currently:
> float[] = [1.0f, 2.5, 5.6, 0.8].dup;
>
> under the proposal
> float[] = [1.0f, 2.5f, 5.6f, 0.8f].dup;
>

Now, if 2.5 simply is a floating point number of unspecified precision,
leaning towards double, and we introduce a suffix to force it to be double:

auto foo = [ 2.5, 3.5 ]; // double[]
auto bar = [ 2.5f, 3.5 ]; // float[]
auto baz = [ 2.5f, 3.5d ]; // double[]

-- 
Simen



More information about the Digitalmars-d mailing list