|
From: | Júlio Hoffimann |
Subject: | Re: ambiguous call to "pow(int, unsigned int&)" in __magick_read__.cc:763 |
Date: | Sat, 27 Aug 2011 15:40:53 -0300 |
2011/8/27 c. <address@hidden>:
The precision of an int is less than 52 bits in all architectures I>
> On 27 Aug 2011, at 18:37, Jordi Gutiérrez Hermoso wrote:
>
>> If that's the version of pow you intended to call, there is nothing
>> wrong in disambiguating the call with a cast, especially if it's
>> not a C-style cast. If that fixes your build, I suggest you push
>> that patch. I am not seeing this problem on a more recent g++.
>
> I was just concerned that casting back-and-forth from int to double
> might introduce some unexpected behaviour due to roundoff, do you
> think it is always safe to use that approach to do power elevation
> with integer inputs?
know of, which is the precision of a double, so it is very unlikely to
introduce a problem to cast an int to a double. In a more dubious
situation (e.g. casting a long to a double), it may be recommended to
use Boost's numeric_cast functions.
We've avoided Boost dependencies so far, but Boost is a very respected
library from which the C++ standard library is made nowadays, so I
don't think we should shy away from it if we see that it solves a
problem for us particularly well.
- Jordi G. H.
[Prev in Thread] | Current Thread | [Next in Thread] |