Updated to support C++Builder 2007 Update 3 (bcc32 5.9.2)

[SVN r39485]
This commit is contained in:
Nicola Musatti
2007-09-23 12:47:52 +00:00
parent c578de9653
commit fdfdbdf8de

View File

@ -14,13 +14,11 @@
// we don't support Borland prior to version 5.4: // we don't support Borland prior to version 5.4:
#if __BORLANDC__ < 0x540 #if __BORLANDC__ < 0x540
# error "Compiler not supported or configured - please reconfigure" # 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 #endif
// last known and checked version is 0x600 (Builder X preview) // last known and checked version is 0x600 (Builder X preview)
// Or 0x582 (Borland C++ Builder 2006 Update 1): // or 0x592 (CodeGear C++ Builder 2007 Update 3):
#if (__BORLANDC__ > 0x582) && (__BORLANDC__ != 0x600) #if (__BORLANDC__ > 0x592) && (__BORLANDC__ != 0x600)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "Unknown compiler version - please run the configure tests and report the results"
# else # else
@ -38,7 +36,6 @@
# define BOOST_BCB_WITH_DINKUMWARE # define BOOST_BCB_WITH_DINKUMWARE
#endif #endif
// //
// Version 5.0 and below: // Version 5.0 and below:
# if __BORLANDC__ <= 0x0550 # if __BORLANDC__ <= 0x0550
@ -54,7 +51,6 @@
#if (__BORLANDC__ <= 0x551) #if (__BORLANDC__ <= 0x551)
# define BOOST_NO_CV_SPECIALIZATIONS # define BOOST_NO_CV_SPECIALIZATIONS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS # define BOOST_NO_CV_VOID_SPECIALIZATIONS
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_DEDUCED_TYPENAME # define BOOST_NO_DEDUCED_TYPENAME
// workaround for missing WCHAR_MAX/WCHAR_MIN: // workaround for missing WCHAR_MAX/WCHAR_MIN:
#include <climits> #include <climits>
@ -67,24 +63,9 @@
#endif #endif
#endif #endif
// Borland C++ Builder 2006 Update 2 and below: // Borland C++ Builder 6 and below:
#if (__BORLANDC__ <= 0x582) #if (__BORLANDC__ <= 0x564)
# define BOOST_NO_SFINAE
# define BOOST_NO_INTEGRAL_INT64_T # 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 # ifdef NDEBUG
// fix broken <cstring> so that Boost.test works: // fix broken <cstring> so that Boost.test works:
@ -97,6 +78,8 @@
# define errno errno # define errno errno
# endif # endif
#endif
// //
// new bug in 5.61: // new bug in 5.61:
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580) #if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
@ -104,6 +87,14 @@
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif #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 # ifdef _WIN32
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
# elif defined(linux) || defined(__linux__) || defined(__linux) # elif defined(linux) || defined(__linux__) || defined(__linux)
@ -115,6 +106,29 @@
# endif # endif
#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: // Post 0x561 we have long long and stdint.h:
#if __BORLANDC__ >= 0x561 #if __BORLANDC__ >= 0x561