1
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
2
// distribute this software is granted provided this copyright notice appears
3
// in all copies. This software is provided "as is" without express or implied
4
// warranty, and with no claim as to its suitability for any purpose.
6
// See http://www.boost.org for most recent version.
8
// Borland C++ compiler setup:
10
// Version 5.0 and below:
11
# if __BORLANDC__ <= 0x0550
12
// Borland C++Builder 4 and 5:
13
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
14
# if __BORLANDC__ == 0x0550
15
// Borland C++Builder 5, command-line compiler 5.5:
16
# define BOOST_NO_OPERATORS_IN_NAMESPACE
20
// Version 5.51 and below:
21
#if (__BORLANDC__ <= 0x551)
22
# define BOOST_NO_CV_SPECIALIZATIONS
23
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
24
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
27
// Version 7.0 (Kylix) and below:
28
#if (__BORLANDC__ <= 0x570) || !defined(BOOST_STRICT_CONFIG)
29
# define BOOST_NO_INTEGRAL_INT64_T
30
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
31
# define BOOST_NO_PRIVATE_IN_AGGREGATE
32
# define BOOST_NO_USING_TEMPLATE
33
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
34
# define BOOST_NO_TEMPLATE_TEMPLATES
35
// we shouldn't really need this - but too many things choke
36
// without it, this needs more investigation:
37
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
41
#if __BORLANDC__ >= 0x561
42
// this seems to be needed by the command line compiler, but not the IDE:
43
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
47
# define BOOST_NO_SWPRINTF
48
# elif defined(linux) || defined(__linux__) || defined(__linux)
49
// we should really be able to do without this
50
// but the wcs* functions aren't imported into std::
51
# define BOOST_NO_STDC_NAMESPACE
52
// _CPPUNWIND doesn't get automatically set for some reason:
53
# pragma defineonoption BOOST_CPPUNWIND -x
58
// Post 0x561 we have long long and stdint.h:
59
#if __BORLANDC__ >= 0x561
60
# define BOOST_HAS_LONG_LONG
61
// On non-Win32 platforms let the platform config figure this out:
63
# define BOOST_HAS_STDINT_H
67
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
68
// defined, then we have 0x560 or greater with the Rogue Wave implementation
69
// which presumably has the std::DBL_MAX bug.
70
#if ((__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560)) || defined(_USE_OLD_RW_STL)
71
// <climits> is partly broken, some macros define symbols that are really in
72
// namespace std, so you end up having to use illegal constructs like
73
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
79
#if __BORLANDC__ >= 0x530
80
# define BOOST_HAS_MS_INT64
83
// check for exception handling support:
85
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND)
86
# define BOOST_NO_EXCEPTIONS
89
// all versions have a <dirent.h>:
91
#define BOOST_HAS_DIRENT_H
93
// Disable Win32 support in ANSI mode:
95
#pragma defineonoption BOOST_DISABLE_WIN32 -A
97
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
101
// we don't support Borland prior to version 5.4:
102
#if __BORLANDC__ < 0x540
103
# error "Compiler not supported or configured - please reconfigure"
106
// last known and checked version is 5.7 (Kylix 3):
107
#if (__BORLANDC__ > 0x570)
108
# if defined(BOOST_ASSERT_CONFIG)
109
# error "Unknown compiler version - please run the configure tests and report the results"
111
# pragma message( "Unknown compiler version - please run the configure tests and report the results")