diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp index acdc0ab9..9b146b4e 100644 --- a/include/boost/config/compiler/borland.hpp +++ b/include/boost/config/compiler/borland.hpp @@ -14,13 +14,11 @@ // we don't support Borland prior to version 5.4: #if __BORLANDC__ < 0x540 # error "Compiler not supported or configured - please reconfigure" -#elif __BORLANDC__ < 0x581 -# pragma message( "Support for Borland compilers older than BCB2006 is deprecated in Boost 1.34" ) #endif // last known and checked version is 0x600 (Builder X preview) -// Or 0x582 (Borland C++ Builder 2006 Update 1): -#if (__BORLANDC__ > 0x582) && (__BORLANDC__ != 0x600) +// or 0x592 (CodeGear C++ Builder 2007 Update 3): +#if (__BORLANDC__ > 0x592) && (__BORLANDC__ != 0x600) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # else @@ -38,7 +36,6 @@ # define BOOST_BCB_WITH_DINKUMWARE #endif - // // Version 5.0 and below: # if __BORLANDC__ <= 0x0550 @@ -54,7 +51,6 @@ #if (__BORLANDC__ <= 0x551) # define BOOST_NO_CV_SPECIALIZATIONS # define BOOST_NO_CV_VOID_SPECIALIZATIONS -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS # define BOOST_NO_DEDUCED_TYPENAME // workaround for missing WCHAR_MAX/WCHAR_MIN: #include @@ -67,24 +63,9 @@ #endif #endif -// Borland C++ Builder 2006 Update 2 and below: -#if (__BORLANDC__ <= 0x582) -# define BOOST_NO_SFINAE +// Borland C++ Builder 6 and below: +#if (__BORLANDC__ <= 0x564) # define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_PRIVATE_IN_AGGREGATE -# define BOOST_NO_USING_TEMPLATE -# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG -# define BOOST_NO_TEMPLATE_TEMPLATES -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS - // we shouldn't really need this - but too many things choke - // 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 -# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP # ifdef NDEBUG // fix broken so that Boost.test works: @@ -97,6 +78,8 @@ # define errno errno # endif +#endif + // // new bug in 5.61: #if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580) @@ -104,6 +87,14 @@ # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS #endif +// Borland C++ Builder 2006 Update 2 and below: +#if (__BORLANDC__ <= 0x582) +# define BOOST_NO_SFINAE +# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG +# define BOOST_NO_TEMPLATE_TEMPLATES + +# define BOOST_NO_PRIVATE_IN_AGGREGATE + # ifdef _WIN32 # define BOOST_NO_SWPRINTF # elif defined(linux) || defined(__linux__) || defined(__linux) @@ -115,6 +106,29 @@ # endif #endif +// Borland C++ Builder 2007 Update 3 and below: +#if (__BORLANDC__ <= 0x592) +# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS +# define BOOST_NO_USING_TEMPLATE +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS + // we shouldn't really need this - but too many things choke + // 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 + +// Temporary workaround +#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS + +#endif + +#if __BORLANDC__ >= 0x590 +# define BOOST_HAS_TR1_HASH + +# define BOOST_HAS_MACRO_USE_FACET +#endif + // // Post 0x561 we have long long and stdint.h: #if __BORLANDC__ >= 0x561