github.com/searKing/golang/go@v1.2.74/os/signal/cgo/include/boost/config/compiler/codegear.hpp (about) 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 "boost: Unknown compiler version - please run the configure tests and report the results" 26 # else 27 # pragma message( "boost: 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_SFINAE_EXPR 116 #define BOOST_NO_CXX11_TEMPLATE_ALIASES 117 #define BOOST_NO_CXX11_UNICODE_LITERALS 118 #define BOOST_NO_CXX11_VARIADIC_TEMPLATES 119 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX 120 #define BOOST_NO_CXX11_USER_DEFINED_LITERALS 121 #define BOOST_NO_CXX11_ALIGNAS 122 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES 123 #define BOOST_NO_CXX11_INLINE_NAMESPACES 124 #define BOOST_NO_CXX11_REF_QUALIFIERS 125 #define BOOST_NO_CXX11_FINAL 126 #define BOOST_NO_CXX11_THREAD_LOCAL 127 128 // C++ 14: 129 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) 130 # define BOOST_NO_CXX14_AGGREGATE_NSDMI 131 #endif 132 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) 133 # define BOOST_NO_CXX14_BINARY_LITERALS 134 #endif 135 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) 136 # define BOOST_NO_CXX14_CONSTEXPR 137 #endif 138 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) 139 # define BOOST_NO_CXX14_DECLTYPE_AUTO 140 #endif 141 #if (__cplusplus < 201304) // There's no SD6 check for this.... 142 # define BOOST_NO_CXX14_DIGIT_SEPARATORS 143 #endif 144 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) 145 # define BOOST_NO_CXX14_GENERIC_LAMBDAS 146 #endif 147 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) 148 # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES 149 #endif 150 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) 151 # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION 152 #endif 153 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) 154 # define BOOST_NO_CXX14_VARIABLE_TEMPLATES 155 #endif 156 157 // C++17 158 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) 159 # define BOOST_NO_CXX17_STRUCTURED_BINDINGS 160 #endif 161 162 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) 163 # define BOOST_NO_CXX17_INLINE_VARIABLES 164 #endif 165 166 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) 167 # define BOOST_NO_CXX17_FOLD_EXPRESSIONS 168 #endif 169 170 #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) 171 # define BOOST_NO_CXX17_IF_CONSTEXPR 172 #endif 173 174 // 175 // TR1 macros: 176 // 177 #define BOOST_HAS_TR1_HASH 178 #define BOOST_HAS_TR1_TYPE_TRAITS 179 #define BOOST_HAS_TR1_UNORDERED_MAP 180 #define BOOST_HAS_TR1_UNORDERED_SET 181 182 #define BOOST_HAS_MACRO_USE_FACET 183 184 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 185 186 // On non-Win32 platforms let the platform config figure this out: 187 #ifdef _WIN32 188 # define BOOST_HAS_STDINT_H 189 #endif 190 191 // 192 // __int64: 193 // 194 #if !defined(__STRICT_ANSI__) 195 # define BOOST_HAS_MS_INT64 196 #endif 197 // 198 // check for exception handling support: 199 // 200 #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) 201 # define BOOST_NO_EXCEPTIONS 202 #endif 203 // 204 // all versions have a <dirent.h>: 205 // 206 #if !defined(__STRICT_ANSI__) 207 # define BOOST_HAS_DIRENT_H 208 #endif 209 // 210 // all versions support __declspec: 211 // 212 #if defined(__STRICT_ANSI__) 213 // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined 214 # define BOOST_SYMBOL_EXPORT 215 #endif 216 // 217 // ABI fixing headers: 218 // 219 #ifndef BOOST_ABI_PREFIX 220 # define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" 221 #endif 222 #ifndef BOOST_ABI_SUFFIX 223 # define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" 224 #endif 225 // 226 // Disable Win32 support in ANSI mode: 227 // 228 # pragma defineonoption BOOST_DISABLE_WIN32 -A 229 // 230 // MSVC compatibility mode does some nasty things: 231 // TODO: look up if this doesn't apply to the whole 12xx range 232 // 233 #if defined(_MSC_VER) && (_MSC_VER <= 1200) 234 # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP 235 # define BOOST_NO_VOID_RETURNS 236 #endif 237 238 #define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__) 239