]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // (C) Copyright John Maddock 2001 - 2003. |
2 | // (C) Copyright David Abrahams 2002 - 2003. | |
3 | // (C) Copyright Aleksey Gurtovoy 2002. | |
4 | // Use, modification and distribution are subject to the | |
5 | // Boost Software License, Version 1.0. (See accompanying file | |
6 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
7 | ||
8 | // See http://www.boost.org for most recent version. | |
9 | ||
10 | // CodeGear C++ compiler setup: | |
11 | ||
12 | #if !defined( BOOST_WITH_CODEGEAR_WARNINGS ) | |
13 | // these warnings occur frequently in optimized template code | |
14 | # pragma warn -8004 // var assigned value, but never used | |
15 | # pragma warn -8008 // condition always true/false | |
16 | # pragma warn -8066 // dead code can never execute | |
17 | # pragma warn -8104 // static members with ctors not threadsafe | |
18 | # pragma warn -8105 // reference member in class without ctors | |
19 | #endif | |
20 | // | |
21 | // versions check: | |
22 | // last known and checked version is 0x621 | |
23 | #if (__CODEGEARC__ > 0x621) | |
24 | # if defined(BOOST_ASSERT_CONFIG) | |
25 | # error "Unknown compiler version - please run the configure tests and report the results" | |
26 | # else | |
27 | # pragma message( "Unknown compiler version - please run the configure tests and report the results") | |
28 | # endif | |
29 | #endif | |
30 | ||
31 | // CodeGear C++ Builder 2009 | |
32 | #if (__CODEGEARC__ <= 0x613) | |
33 | # define BOOST_NO_INTEGRAL_INT64_T | |
34 | # define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS | |
35 | # define BOOST_NO_PRIVATE_IN_AGGREGATE | |
36 | # define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE | |
37 | // we shouldn't really need this - but too many things choke | |
38 | // without it, this needs more investigation: | |
39 | # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS | |
40 | # define BOOST_SP_NO_SP_CONVERTIBLE | |
41 | #endif | |
42 | ||
43 | // CodeGear C++ Builder 2010 | |
44 | #if (__CODEGEARC__ <= 0x621) | |
45 | # define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type | |
46 | # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL | |
47 | # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS | |
48 | # define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member | |
49 | # define BOOST_NO_USING_TEMPLATE | |
50 | # define BOOST_NO_TWO_PHASE_NAME_LOOKUP | |
51 | // Temporary hack, until specific MPL preprocessed headers are generated | |
52 | # define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS | |
53 | ||
54 | // CodeGear has not yet completely implemented value-initialization, for | |
55 | // example for array types, as I reported in 2010: Embarcadero Report 83751, | |
56 | // "Value-initialization: arrays should have each element value-initialized", | |
57 | // http://qc.embarcadero.com/wc/qcmain.aspx?d=83751 | |
58 | // Last checked version: Embarcadero C++ 6.21 | |
59 | // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues | |
60 | // (Niels Dekker, LKEB, April 2010) | |
61 | # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION | |
62 | ||
63 | # if defined(NDEBUG) && defined(__cplusplus) | |
64 | // fix broken <cstring> so that Boost.test works: | |
65 | # include <cstring> | |
66 | # undef strcmp | |
67 | # endif | |
68 | // fix broken errno declaration: | |
69 | # include <errno.h> | |
70 | # ifndef errno | |
71 | # define errno errno | |
72 | # endif | |
73 | ||
74 | #endif | |
75 | ||
76 | // Reportedly, #pragma once is supported since C++ Builder 2010 | |
77 | #if (__CODEGEARC__ >= 0x620) | |
78 | # define BOOST_HAS_PRAGMA_ONCE | |
79 | #endif | |
80 | ||
81 | // | |
82 | // C++0x macros: | |
83 | // | |
84 | #if (__CODEGEARC__ <= 0x620) | |
85 | #define BOOST_NO_CXX11_STATIC_ASSERT | |
86 | #else | |
87 | #define BOOST_HAS_STATIC_ASSERT | |
88 | #endif | |
89 | #define BOOST_HAS_CHAR16_T | |
90 | #define BOOST_HAS_CHAR32_T | |
91 | #define BOOST_HAS_LONG_LONG | |
92 | // #define BOOST_HAS_ALIGNOF | |
93 | #define BOOST_HAS_DECLTYPE | |
94 | #define BOOST_HAS_EXPLICIT_CONVERSION_OPS | |
95 | // #define BOOST_HAS_RVALUE_REFS | |
96 | #define BOOST_HAS_SCOPED_ENUM | |
97 | // #define BOOST_HAS_STATIC_ASSERT | |
98 | #define BOOST_HAS_STD_TYPE_TRAITS | |
99 | ||
100 | #define BOOST_NO_CXX11_AUTO_DECLARATIONS | |
101 | #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS | |
102 | #define BOOST_NO_CXX11_CONSTEXPR | |
103 | #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS | |
104 | #define BOOST_NO_CXX11_DELETED_FUNCTIONS | |
105 | #define BOOST_NO_CXX11_EXTERN_TEMPLATE | |
106 | #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS | |
107 | #define BOOST_NO_CXX11_LAMBDAS | |
108 | #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS | |
109 | #define BOOST_NO_CXX11_NOEXCEPT | |
110 | #define BOOST_NO_CXX11_NULLPTR | |
111 | #define BOOST_NO_CXX11_RANGE_BASED_FOR | |
112 | #define BOOST_NO_CXX11_RAW_LITERALS | |
113 | #define BOOST_NO_CXX11_RVALUE_REFERENCES | |
114 | #define BOOST_NO_SFINAE_EXPR | |
115 | #define BOOST_NO_CXX11_TEMPLATE_ALIASES | |
116 | #define BOOST_NO_CXX11_UNICODE_LITERALS | |
117 | #define BOOST_NO_CXX11_VARIADIC_TEMPLATES | |
118 | #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX | |
119 | #define BOOST_NO_CXX11_USER_DEFINED_LITERALS | |
120 | #define BOOST_NO_CXX11_ALIGNAS | |
121 | #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES | |
122 | #define BOOST_NO_CXX11_INLINE_NAMESPACES | |
123 | #define BOOST_NO_CXX11_REF_QUALIFIERS | |
124 | #define BOOST_NO_CXX11_FINAL | |
125 | #define BOOST_NO_CXX11_THREAD_LOCAL | |
126 | ||
127 | // C++ 14: | |
128 | #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) | |
129 | # define BOOST_NO_CXX14_AGGREGATE_NSDMI | |
130 | #endif | |
131 | #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) | |
132 | # define BOOST_NO_CXX14_BINARY_LITERALS | |
133 | #endif | |
134 | #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) | |
135 | # define BOOST_NO_CXX14_CONSTEXPR | |
136 | #endif | |
137 | #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) | |
138 | # define BOOST_NO_CXX14_DECLTYPE_AUTO | |
139 | #endif | |
140 | #if (__cplusplus < 201304) // There's no SD6 check for this.... | |
141 | # define BOOST_NO_CXX14_DIGIT_SEPARATORS | |
142 | #endif | |
143 | #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) | |
144 | # define BOOST_NO_CXX14_GENERIC_LAMBDAS | |
145 | #endif | |
146 | #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) | |
147 | # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES | |
148 | #endif | |
149 | #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) | |
150 | # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION | |
151 | #endif | |
152 | #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) | |
153 | # define BOOST_NO_CXX14_VARIABLE_TEMPLATES | |
154 | #endif | |
155 | ||
156 | // | |
157 | // TR1 macros: | |
158 | // | |
159 | #define BOOST_HAS_TR1_HASH | |
160 | #define BOOST_HAS_TR1_TYPE_TRAITS | |
161 | #define BOOST_HAS_TR1_UNORDERED_MAP | |
162 | #define BOOST_HAS_TR1_UNORDERED_SET | |
163 | ||
164 | #define BOOST_HAS_MACRO_USE_FACET | |
165 | ||
166 | #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST | |
167 | ||
168 | // On non-Win32 platforms let the platform config figure this out: | |
169 | #ifdef _WIN32 | |
170 | # define BOOST_HAS_STDINT_H | |
171 | #endif | |
172 | ||
173 | // | |
174 | // __int64: | |
175 | // | |
176 | #if !defined(__STRICT_ANSI__) | |
177 | # define BOOST_HAS_MS_INT64 | |
178 | #endif | |
179 | // | |
180 | // check for exception handling support: | |
181 | // | |
182 | #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) | |
183 | # define BOOST_NO_EXCEPTIONS | |
184 | #endif | |
185 | // | |
186 | // all versions have a <dirent.h>: | |
187 | // | |
188 | #if !defined(__STRICT_ANSI__) | |
189 | # define BOOST_HAS_DIRENT_H | |
190 | #endif | |
191 | // | |
192 | // all versions support __declspec: | |
193 | // | |
194 | #if defined(__STRICT_ANSI__) | |
195 | // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined | |
196 | # define BOOST_SYMBOL_EXPORT | |
197 | #endif | |
198 | // | |
199 | // ABI fixing headers: | |
200 | // | |
201 | #ifndef BOOST_ABI_PREFIX | |
202 | # define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" | |
203 | #endif | |
204 | #ifndef BOOST_ABI_SUFFIX | |
205 | # define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" | |
206 | #endif | |
207 | // | |
208 | // Disable Win32 support in ANSI mode: | |
209 | // | |
210 | # pragma defineonoption BOOST_DISABLE_WIN32 -A | |
211 | // | |
212 | // MSVC compatibility mode does some nasty things: | |
213 | // TODO: look up if this doesn't apply to the whole 12xx range | |
214 | // | |
215 | #if defined(_MSC_VER) && (_MSC_VER <= 1200) | |
216 | # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP | |
217 | # define BOOST_NO_VOID_RETURNS | |
218 | #endif | |
219 | ||
220 | #define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__) | |
221 |