From: Todd V. <tve...@oo...> - 1998-07-30 22:49:13
|
Steve Karmesin wrote: > The issue here is that on at least one platform (Intel) the files like > <cstring> exist, but they don't put their contents in std::. Yes, this is > dumb. This has been a major headache recently for Blitz, and POOMA 2 will run into the same problem: where are math functions located? Blitz currently has the current monstrosity: #if defined(BZ_MATH_FN_IN_NAMESPACE_STD) #define BZ_MATHFN_SCOPE(x) std::x #elif defined(BZ_NAMESPACES) #define BZ_MATHFN_SCOPE(x) ::x #else #define BZ_MATHFN_SCOPE(x) x #endif and then "cos" becomes "BZ_MATHFN_SCOPE(cos)". Erk. The reason: some compilers put math functions in <cmath> and std::. Others put them in the global namespace. Other compilers don't have namespaces at all. To make matters worse, some compilers put complex math functions in std:: and scalar math functions in the global namespace. So Blitz also needs a BZ_COMPLEX_MATHFN_SCOPE.. yes, it's hideous. I vote we put ourselves in cryogenic storage until this mess gets sorted out. Cheers, Todd |