diff --git a/config.htm b/config.htm index 9a5e03c3..2c0d5164 100644 --- a/config.htm +++ b/config.htm @@ -557,6 +557,14 @@ f(&bar); // should choose #2. whether it is appropriate to explicitly specialize a template on wchar_t if there is already a specialization for other integer types. + + BOOST_NO_IS_ABSTRACT + Compiler + The C++ compiler does not support SFINAE with + abstract types, this is covered by + Core Language DR337, but is not part of the current standard.  + Fortunately most compilers that support SFINAE also support this DR. + BOOST_NO_LIMITS Standard library diff --git a/configure b/configure index 923f0433..16593837 100644 --- a/configure +++ b/configure @@ -2552,8 +2552,8 @@ cat > user.hpp << EOF // define this to disable all config options, // excluding the user config. Use if your -// setup is fully ISO compliant, and has no -// useful extensions, or for autoconf generated +// setup is fully ISO complient, and has no +// useful extentions, or for autoconf generated // setups: #ifndef BOOST_NO_CONFIG # define BOOST_NO_CONFIG diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp index 531691ef..07c106c6 100644 --- a/include/boost/config/compiler/borland.hpp +++ b/include/boost/config/compiler/borland.hpp @@ -54,6 +54,7 @@ // without it, this needs more investigation: # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +# define BOOST_NO_IS_ABSTRACT # ifdef NDEBUG // fix broken so that Boost.test works: # include diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index 4dc3f608..32cf282c 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -13,11 +13,12 @@ // GNU C++ compiler setup: -# if __GNUC__ == 2 && __GNUC_MINOR__ == 91 +#if __GNUC__ < 3 +# if __GNUC_MINOR__ == 91 // egcs 1.1 won't parse shared_ptr.hpp without this: # define BOOST_NO_AUTO_PTR # endif -# if __GNUC__ == 2 && __GNUC_MINOR__ < 95 +# if __GNUC_MINOR__ < 95 // // Prior to gcc 2.95 member templates only partly // work - define BOOST_MSVC6_MEMBER_TEMPLATES @@ -29,30 +30,35 @@ # endif # endif -# if __GNUC__ == 2 && __GNUC_MINOR__ < 96 +# if __GNUC_MINOR__ < 96 # define BOOST_NO_SFINAE # endif -# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97 +# if __GNUC_MINOR__ <= 97 # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # define BOOST_NO_OPERATORS_IN_NAMESPACE # endif -# if __GNUC__ < 3 -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# endif +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL +#elif __GNUC__ == 3 + // + // gcc-3.x problems: + // + // Bug specific to gcc 3.1 and 3.2: + // +# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) +# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS +# endif +# if __GNUC_MINOR__ < 4 +# define BOOST_NO_IS_ABSTRACT +# endif +#endif #ifndef __EXCEPTIONS # define BOOST_NO_EXCEPTIONS #endif -// -// Bug specific to gcc 3.1 and 3.2: -// -#if (__GNUC__ == 3) && ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -#endif // // Threading support: Turn this on unconditionally here (except for @@ -84,8 +90,8 @@ # error "Compiler not configured - please reconfigure" #endif // -// last known and checked version is 3.4: -#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 4)) +// last known and checked version is 4.0 (Pre-release): +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0)) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # else diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp index 32353260..1ce600cc 100644 --- a/include/boost/config/compiler/visualc.hpp +++ b/include/boost/config/compiler/visualc.hpp @@ -55,6 +55,7 @@ # define BOOST_NO_TEMPLATE_TEMPLATES # define BOOST_NO_SFINAE # define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS +# define BOOST_NO_IS_ABSTRACT # if (_MSC_VER > 1200) # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS # endif diff --git a/test/Jamfile b/test/Jamfile index 98a5f6ba..c16b3ab4 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -1,8 +1,8 @@ # # Regression test Jamfile for boost configuration setup. # *** DO NOT EDIT THIS FILE BY HAND *** -# This file was automatically generated on Sun Jul 25 11:47:49 GMTDT 2004, -# by libs/config/tools/generate +# This file was automatically generated on Sat Dec 04 10:44:19 2004 +# by libs/config/tools/generate.cpp # Copyright John Maddock. # # If you need to alter build preferences then set them in @@ -17,168 +17,6 @@ run config_test.cpp