annotate DEPENDENCIES/generic/include/boost/config/compiler/codegear.hpp @ 125:34e428693f5d vext

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