source: XIOS/dev/dev_olga/src/extern/boost/include/boost/config/compiler/codegear.hpp @ 1022

Last change on this file since 1022 was 1022, checked in by mhnguyen, 7 years ago
File size: 5.4 KB
Line 
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#  ifdef NDEBUG
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// C++0x macros:
77//
78#if (__CODEGEARC__ <= 0x620)
79#define BOOST_NO_STATIC_ASSERT
80#else
81#define BOOST_HAS_STATIC_ASSERT
82#endif
83#define BOOST_HAS_CHAR16_T
84#define BOOST_HAS_CHAR32_T
85#define BOOST_HAS_LONG_LONG
86// #define BOOST_HAS_ALIGNOF
87#define BOOST_HAS_DECLTYPE
88#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
89// #define BOOST_HAS_RVALUE_REFS
90#define BOOST_HAS_SCOPED_ENUM
91// #define BOOST_HAS_STATIC_ASSERT
92#define BOOST_HAS_STD_TYPE_TRAITS
93
94#define BOOST_NO_AUTO_DECLARATIONS
95#define BOOST_NO_AUTO_MULTIDECLARATIONS
96#define BOOST_NO_CONCEPTS
97#define BOOST_NO_CONSTEXPR
98#define BOOST_NO_DEFAULTED_FUNCTIONS
99#define BOOST_NO_DELETED_FUNCTIONS
100#define BOOST_NO_EXTERN_TEMPLATE
101#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
102#define BOOST_NO_INITIALIZER_LISTS
103#define BOOST_NO_LAMBDAS
104#define BOOST_NO_NULLPTR
105#define BOOST_NO_RAW_LITERALS
106#define BOOST_NO_RVALUE_REFERENCES
107#define BOOST_NO_SFINAE_EXPR
108#define BOOST_NO_TEMPLATE_ALIASES
109#define BOOST_NO_UNICODE_LITERALS
110#define BOOST_NO_VARIADIC_TEMPLATES
111
112//
113// TR1 macros:
114//
115#define BOOST_HAS_TR1_HASH
116#define BOOST_HAS_TR1_TYPE_TRAITS
117#define BOOST_HAS_TR1_UNORDERED_MAP
118#define BOOST_HAS_TR1_UNORDERED_SET
119
120#define BOOST_HAS_MACRO_USE_FACET
121
122#define BOOST_NO_INITIALIZER_LISTS
123
124// On non-Win32 platforms let the platform config figure this out:
125#ifdef _WIN32
126#  define BOOST_HAS_STDINT_H
127#endif
128
129//
130// __int64:
131//
132#if !defined(__STRICT_ANSI__)
133#  define BOOST_HAS_MS_INT64
134#endif
135//
136// check for exception handling support:
137//
138#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
139#  define BOOST_NO_EXCEPTIONS
140#endif
141//
142// all versions have a <dirent.h>:
143//
144#if !defined(__STRICT_ANSI__)
145#  define BOOST_HAS_DIRENT_H
146#endif
147//
148// all versions support __declspec:
149//
150#if defined(__STRICT_ANSI__)
151// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined 
152#  define BOOST_SYMBOL_EXPORT
153#endif
154//
155// ABI fixing headers:
156//
157#ifndef BOOST_ABI_PREFIX
158#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
159#endif
160#ifndef BOOST_ABI_SUFFIX
161#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
162#endif
163//
164// Disable Win32 support in ANSI mode:
165//
166#  pragma defineonoption BOOST_DISABLE_WIN32 -A
167//
168// MSVC compatibility mode does some nasty things:
169// TODO: look up if this doesn't apply to the whole 12xx range
170//
171#if defined(_MSC_VER) && (_MSC_VER <= 1200)
172#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
173#  define BOOST_NO_VOID_RETURNS
174#endif
175
176#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
177
Note: See TracBrowser for help on using the repository browser.