October 16, 2004 overload resolution on double-edged types | ||||
|---|---|---|---|---|
| ||||
tested on windows XP, dmd 0.102
maybe not a new one, but could't find the post..
pow(real, real), pow(real, uint) and pow(real, int) are
overloaded in std.math, and the following code fails to
be compiled.
<code>
import std.math;
void main()
{
/*
* want to use pow(real, uint)
* because this one is the fastest
*/
pow(5.0, 6u); // line9
}
</code>
the compiler message:
bug.d(9): function pow overloads real(real x,uint n) and
real(real x,real y) both match argument list for pow
dmd also fails to compile the following alternatives.
pow(5.0, 6);
pow(5.0, cast(uint) 6);
pow(5.0, cast(uint)(6));
pow(5.0, e); // uint e = 6; (declared ahead)
you can successfully compile pow(5.0, 6.0) because 6.0
can never be interpreted as uint or int. but there seems
to be no way to inform dmd that a specified number is
no real, no int, but an uint.
tetsuya
| ||||
October 29, 2004 Re: overload resolution on double-edged types | ||||
|---|---|---|---|---|
| ||||
Posted in reply to tetsuya | added to dstress: svn://svn.kuehne.cn/dstress/run/overload_08.d . svn://svn.kuehne.cn/dstress/run/overload_11.d Thomas In article <ckrq8e$1cnl$1@digitaldaemon.com>, tetsuya says... > >pow(real, real), pow(real, uint) and pow(real, int) are >overloaded in std.math, and the following code fails to >be compiled. > > ><code> >import std.math; > >void main() >{ >/* >* want to use pow(real, uint) >* because this one is the fastest >*/ >pow(5.0, 6u); // line9 >} ></code> > > >the compiler message: >bug.d(9): function pow overloads real(real x,uint n) and >real(real x,real y) both match argument list for pow > > >dmd also fails to compile the following alternatives. > >pow(5.0, 6); >pow(5.0, cast(uint) 6); >pow(5.0, cast(uint)(6)); >pow(5.0, e); // uint e = 6; (declared ahead) > > >you can successfully compile pow(5.0, 6.0) because 6.0 >can never be interpreted as uint or int. but there seems >to be no way to inform dmd that a specified number is >no real, no int, but an uint. > > >tetsuya | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply