Why 1f.iota(100f).array returns double[] not float[]?
Dominikus Dittes Scherkl via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Sep 8 05:28:06 PDT 2015
On Tuesday, 8 September 2015 at 07:17:01 UTC, Ali Çehreli wrote:
> https://github.com/D-Programming-Language/phobos/blob/master/std/range/package.d#L4630
>
> auto iota(B, E)(B begin, E end)
> if (isFloatingPoint!(CommonType!(B, E)))
> {
> return iota(begin, end, 1.0);
> }
>
Such kind of stuff would better be written as
auto iota(B, E)(B begin, E end)
{
return iota(begin, end, cast(CommonType!(B, E))1.0);
}
this doesn't need a constraint anymore, or maybe use
if(isNumeric!(CommonType!(B, E)))
I tend to use the above kind of cast often, because I like to
work with ubyte or ushort, and every f***ing number literal
changes the type to uint :-/
More information about the Digitalmars-d-learn
mailing list