|
Boost : |
From: Guillaume Melquiond (gmelquio_at_[hidden])
Date: 2003-05-11 10:21:19
Hi,
I found a bug in the interval library. but when I corrected it, I stumbled
over another problem: this bug was ironically what allowed the library to
be correctly compiled with my version of the compiler (Intel compiler 7.1
for Linux). When I remove it, the library no longer works...
The default configuration defines BOOST_NO_STDC_NAMESPACE for this
compiler. So the library expects to find standard C math functions (the
ones in <cmath>) in the global namespace. Unfortunately, they are where
they are supposed to be: in the std namespace. So here is my question: is
this macro really necessary for this compiler?
Just to be sure, I ran config_info to get the default configuration
options:
BOOST_DEDUCED_TYPENAME =typename
BOOST_HAS_CLOCK_GETTIME [no value]
BOOST_HAS_DIRENT_H [no value]
BOOST_HAS_GETTIMEOFDAY [no value]
BOOST_HAS_LONG_LONG [no value]
BOOST_HAS_NANOSLEEP [no value]
BOOST_HAS_NL_TYPES_H [no value]
BOOST_HAS_NRVO [no value]
BOOST_HAS_PTHREADS [no value]
BOOST_HAS_SCHED_YIELD [no value]
BOOST_HAS_SIGACTION [no value]
BOOST_HAS_UNISTD_H [no value]
BOOST_MSVC6_MEMBER_TEMPLATES [no value]
BOOST_NESTED_TEMPLATE =template
BOOST_NO_HASH [no value]
BOOST_NO_MS_INT64_NUMERIC_LIMITS [no value]
* BOOST_NO_SLIST [no value]
* BOOST_NO_STDC_NAMESPACE [no value]
BOOST_NO_SWPRINTF [no value]
BOOST_STD_EXTENSION_NAMESPACE =std
BOOST_UNREACHABLE_RETURN(0) [no value]
and then I ran it one more time with the user.hpp given by the configure
script to get the local options:
BOOST_DEDUCED_TYPENAME =typename
BOOST_HAS_CLOCK_GETTIME [no value]
BOOST_HAS_DIRENT_H [no value]
BOOST_HAS_GETTIMEOFDAY [no value]
BOOST_HAS_LONG_LONG [no value]
* BOOST_HAS_MACRO_USE_FACET [no value]
BOOST_HAS_NANOSLEEP [no value]
BOOST_HAS_NL_TYPES_H [no value]
BOOST_HAS_NRVO [no value]
BOOST_HAS_PTHREADS [no value]
BOOST_HAS_SCHED_YIELD [no value]
BOOST_HAS_SIGACTION [no value]
* BOOST_HAS_STDINT_H [no value]
* BOOST_HAS_SLIST [no value]
BOOST_HAS_UNISTD_H [no value]
BOOST_MSVC6_MEMBER_TEMPLATES [no value]
BOOST_NESTED_TEMPLATE =template
BOOST_NO_HASH [no value]
BOOST_NO_MS_INT64_NUMERIC_LIMITS [no value]
BOOST_NO_SWPRINTF [no value]
BOOST_STD_EXTENSION_NAMESPACE =std
BOOST_UNREACHABLE_RETURN(0) [no value]
So there are quite a lot of differences between what Boost expects from
the compiler and what the compiler actually provides (the stars indicate
the differences between the two configurations).
I can contribute patches to fix Boost configuration. But before that, I
would like to know if other people have also run the configure script with
the Intel compiler. In particular, I am interested in knowing if the
Windows version of the compiler behave like the Linux version. It would
also be interesting to know if the 7.0 version (and not only the 7.1)
benefits from these changes.
Regards,
Guillaume
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk