Re: Cmath and math.h Changes in Xcode 2.4
Re: Cmath and math.h Changes in Xcode 2.4
- Subject: Re: Cmath and math.h Changes in Xcode 2.4
- From: Mike Jackson <email@hidden>
- Date: Tue, 29 Aug 2006 11:27:42 -0400
- Thread-topic: Cmath and math.h Changes in Xcode 2.4
On 8/29/06 8:48 AM, "Lyndsey" <email@hidden> wrote:
> On 8/28/06 10:59 PM, "Mike Jackson" <email@hidden> wrote:
>
>> Was there some change to Xcode (and the entire tool chain) in Xcode 2.4 that
>> would affect the isnan(x) function?
>>
>> I have now come across two open source packages that get hung up on
>> "isnan(x) is undeclared in this context" type errors.
>>
>> The projects are OpenSceneGraph (www.openscenegraph.net) and ITK
>> (www.itk.org).
>>
>> In ITK's case I had to change a #define to look like the following:
>>
>> #if defined(__APPLE__)
>> #if (__GNUC__ >= 4)
>> #include <cmath>
>> #define isnan(x) std::isnan(x)
>> #else
>> #include <math.h>
>> #define isnan(x) __isnand((double)x)
>> #endif
>> #endif
>>
>> Where as it used to be just:
>> #if defined(__APPLE__)
>> #include <math.h>
>> #define isnan(x) __isnand((double)x)
>> #endif
>>
>> Just curious....
>
> I came up against the same problem and Tommy Nordgren (whom I could not get
> a reply thank-you-email to) found that:
>
> Preprocessing and grepping for isnand gives the following line:
> static __inline__ int __inline_isnand( double __x ) { return __x !=
> __x; }
> So it looks as the correct name is : __inline_isnand
>
> This is only for Intel builds, it is still __isnand on PowePC.
>
> Lyndsey
Looking around it seems the "safer" way to do this is to use the
#define isnan(x) std::isnan(x)
But I don't know anything about anything when it comes to this sort of thing
in C++ so I do not really know the "correct" way to do this. The ITK list is
settling on the std::isnan(x) convention. Not sure what track OpenSceneGraph
took.
--
Mike Jackson
imikejackson <at> gmail <dot> com
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden