
Dear All, I recently compiled some important numeric applications I have under SuSE8.1 I was shocked to find that some of the major compiler/host config for GCC3.2 has not been done! The problem can be reproduced with the simple test program. #include <limits> #include <iostream> int main() { std::cout << std::numeric_limits<float>::has_infinity << std::endl; std::cout << std::numeric_limits<float>::infinity() << std::endl; } The problem is common to all the type traits, not just infinity, and all the real types, not just float. Looking in /usr/include/g++/limits the "__glibcpp_float_XXX" macro's control this behaviour. The macros appear in the context of the following lines in the header. // FIXME: These are just stubs and inkorrect #ifndef __glibcpp_float_infinity #define __glibcpp_float_infinity 0.0 #endif etc. Clearly SuSE has not completed the compiler/host config for GCC3.2 Looking in /usr/include/g++/i486-suse-linux/bits the header c++config.h provides no more useful definition for the "__glibcpp_float_XXX" macros. Can anyone else confirm this. Or indeed confirm this has been fixed! Given that non of these numeric_limits are defined in the distributed GCC package, I assume they were also not correctly defined when the other packages in the distro were compiled. I wonder if the numeric results from any of the packages using C++ are effected! Michael Stevens