casting int[] to bool[]

Bill Baxter wbaxter at gmail.com
Thu Jan 29 17:54:13 PST 2009


On Fri, Jan 30, 2009 at 10:46 AM, Steven Schveighoffer
<schveiguy at yahoo.com> wrote:
> "Jarrett Billingsley" wrote
>> On Thu, Jan 29, 2009 at 6:15 PM, Saaa <empty at needmail.com> wrote:
>>> That gives the same error.. only casting x to real works :/
>>
>> That's more an issue with D's extremely (overly?) strict overload
>> resolution rules.  Functions like sin() shouldn't be an issue, since
>> there is only one overload with those.  But yes, as far as pow() is
>> concerned, I guess you do have to cast to real.  Casting is fine here,
>> don't bother using to!().
>
> This is such a common "mistake", and really more of an annoyance, I wonder
> if it might be better if pow were switched to a template that called the
> actual pow after casting the first argument to real.  Often times, one does
> not use reals as their variable type, and I seem to recall this kind of
> error happens even with literals for both arguments...
>
> Something like:
>
> real pow(T, U)(T t, U u)
> {
>   return _pow(cast(real)t, u);
> }


You may count me among the annoyed.  I never use 'real' for anything,
so I get those errors a lot.

--bb


More information about the Digitalmars-d-learn mailing list