]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/config/include/boost/config/compiler/codegear.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / config / include / boost / config / compiler / codegear.hpp
CommitLineData
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