]> git.lyx.org Git - lyx.git/blob - boost/boost/config/compiler/borland.hpp
make it compile without exceptions on gcc 2.96
[lyx.git] / boost / boost / config / compiler / borland.hpp
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.
5
6 //  See http://www.boost.org for most recent version.
7
8 //  Borland C++ compiler setup:
9
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
17 #     endif
18 #   endif
19
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
25 #endif
26
27 // Version 6.0 and below:
28 #if (__BORLANDC__ <= 0x560) || !defined(BOOST_STRICT_CONFIG)
29 #  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
30 #  define BOOST_NO_INTEGRAL_INT64_T
31 #  define BOOST_NO_PRIVATE_IN_AGGREGATE
32 #  define BOOST_NO_SWPRINTF
33 #  define BOOST_NO_USING_TEMPLATE
34 #  define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
35 #  define BOOST_NO_TEMPLATE_TEMPLATES
36    // we shouldn't really need this - but too many things choke
37    // without it, this needs more investigation:
38 #  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
39 #endif
40
41 // Borland C++Builder 6 defaults to using STLPort.  If _USE_OLD_RW_STL is
42 // defined, then we have 0x560 or greater with the Rogue Wave implementation
43 // which presumably has the std::DBL_MAX bug.
44 #if ((__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560)) || defined(_USE_OLD_RW_STL)
45 // <climits> is partly broken, some macros define symbols that are really in
46 // namespace std, so you end up having to use illegal constructs like
47 // std::DBL_MAX, as a fix we'll just include float.h and have done with:
48 #include <float.h>
49 #endif
50 //
51 // __int64:
52 //
53 #if __BORLANDC__ >= 0x530
54 #  define BOOST_HAS_MS_INT64
55 #endif
56 //
57 // check for exception handling support:
58 //
59 #ifndef _CPPUNWIND
60 #  define BOOST_NO_EXCEPTIONS
61 #endif
62 //
63 // all versions have a <dirent.h>:
64 //
65 #define BOOST_HAS_DIRENT_H
66 //
67 // Disable Win32 support in ANSI mode:
68 //
69 #pragma defineonoption BOOST_DISABLE_WIN32 -A
70
71 #define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
72
73 //
74 // versions check:
75 // we don't support Borland prior to version 5.4:
76 #if __BORLANDC__ < 0x540
77 #  error "Compiler not supported or configured - please reconfigure"
78 #endif
79 //
80 // last known and checked version is 5.6:
81 #if (__BORLANDC__ > 0x560)
82 #  if defined(BOOST_ASSERT_CONFIG)
83 #     error "Unknown compiler version - please run the configure tests and report the results"
84 #  else
85 #     pragma message( "Unknown compiler version - please run the configure tests and report the results")
86 #  endif
87 #endif
88
89
90