Blitz logo

Blitz Support :

From: Julian Cummings (cummings_at_[hidden])
Date: 2005-05-17 22:08:19


The problem here is that cpp is not detecting that isnan is actually a
macro function, not a normal function prototype. The blitz code uses

#ifdef isnan

to attempt to detect this situation, but it doesn't work. Is there a
cpp guru out there who knows the proper way to detect whether something
is a cpp macro function or not? I've tried a few ideas, but no luck
thus far. Any help would be appreciated.

Thanks, Julian C.

On Mon, 2005-05-16 at 22:42 -0700, Creon Levit wrote:
> checked out the latest cvs sources, ran autoreconf, configure, then make
> lib.
>
> ../blitz/mathfunc.h: In static member function `static int
> blitz::_bz_blitz_isnan<P_numtype1>::apply(P_numtype1)':
> ../blitz/mathfunc.h:1555: error: '::isnan' has not been declared
> ../blitz/funcs.h: In static member function `static int
> blitz::Fn_isnan<T_numtype1>::apply(T_numtype1)':
> ../blitz/funcs.h:587: error: '::isnan' has not been declared
> make[1]: *** [globals.lo] Error 1
> make: *** [blitz-library] Error 1
>
> Now, gcc definitely has namespaces, and so I know it wasn't the "right"
> thing to do, but I got it to build and pass all tests by changing line
> 138 of compiler.h from:
>
> #define BZ_IEEEMATHFN_SCOPE(x) ::x
>
> to:
>
> #define BZ_IEEEMATHFN_SCOPE(x) x
>
>
>
> _______________________________________________
> Blitz-support mailing list
> Blitz-support_at_[hidden]
> http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support
>

-- 
Dr. Julian C. Cummings                       E-mail: cummings_at_[hidden]
California Institute of Technology           Phone:  626-395-2543
1200 E. California Blvd., Mail Code 158-79   Fax:    626-584-5917
Pasadena, CA 91125                           Office: 125 Powell-Booth