Array initializers and inheritance
dnewsgroup at billbaxter.com
Sun Oct 29 21:42:04 PST 2006
Chris Nicholson-Sauls wrote:
> Frank Benoit (keinfarbton) wrote:
>> I think, the array initialization feature is not so nice. The array
>> takes its type from the type of the first initializer. This is
>> absolutely ugly.
> You are correct that it takes its type from the first element. In the
> vast majority of cases (personal experience, might not be general) this
> hasn't been a problem. Still, I do feel a little antsy sometimes about
> putting that cast() at the beginning.
To me that is fairly surprising behavior. I would expect the compiler
to look at *all* the values in the array literal and pick the type to
use based on standard promotion rules ("integer promotions" and "usual
arithmetic conversions" from http://www.digitalmars.com/d/type.html).
I.e. [1, 2, 3, 4.0] should be double, not int.
Just like 1+2+3+4.0 is a double and not and int.
More information about the Digitalmars-d-learn