github.com/searKing/golang/go@v1.2.117/os/signal/cgo/include/boost/config/compiler/common_edg.hpp (about) 1 // (C) Copyright John Maddock 2001 - 2002. 2 // (C) Copyright Jens Maurer 2001. 3 // (C) Copyright David Abrahams 2002. 4 // (C) Copyright Aleksey Gurtovoy 2002. 5 // (C) Copyright Markus Schoepflin 2005. 6 // Use, modification and distribution are subject to the 7 // Boost Software License, Version 1.0. (See accompanying file 8 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 9 10 // See http://www.boost.org for most recent version. 11 12 // 13 // Options common to all edg based compilers. 14 // 15 // This is included from within the individual compiler mini-configs. 16 17 #ifndef __EDG_VERSION__ 18 # error This file requires that __EDG_VERSION__ be defined. 19 #endif 20 21 #if (__EDG_VERSION__ <= 238) 22 # define BOOST_NO_INTEGRAL_INT64_T 23 # define BOOST_NO_SFINAE 24 #endif 25 26 #if (__EDG_VERSION__ <= 240) 27 # define BOOST_NO_VOID_RETURNS 28 #endif 29 30 #if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) 31 # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP 32 #endif 33 34 #if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES) 35 # define BOOST_NO_TEMPLATE_TEMPLATES 36 #endif 37 38 #if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT) 39 # define BOOST_NO_IS_ABSTRACT 40 #endif 41 42 #if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) 43 # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL 44 #endif 45 46 // See also kai.hpp which checks a Kai-specific symbol for EH 47 # if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) 48 # define BOOST_NO_EXCEPTIONS 49 # endif 50 51 # if !defined(__NO_LONG_LONG) 52 # define BOOST_HAS_LONG_LONG 53 # else 54 # define BOOST_NO_LONG_LONG 55 # endif 56 57 // Not sure what version was the first to support #pragma once, but 58 // different EDG-based compilers (e.g. Intel) supported it for ages. 59 // Add a proper version check if it causes problems. 60 #define BOOST_HAS_PRAGMA_ONCE 61 62 // 63 // C++0x features 64 // 65 // See above for BOOST_NO_LONG_LONG 66 // 67 #if (__EDG_VERSION__ < 310) 68 # define BOOST_NO_CXX11_EXTERN_TEMPLATE 69 #endif 70 #if (__EDG_VERSION__ <= 310) 71 // No support for initializer lists 72 # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 73 #endif 74 #if (__EDG_VERSION__ < 400) 75 # define BOOST_NO_CXX11_VARIADIC_MACROS 76 #endif 77 78 #define BOOST_NO_CXX11_AUTO_DECLARATIONS 79 #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS 80 #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS 81 #define BOOST_NO_CXX11_DELETED_FUNCTIONS 82 #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS 83 #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS 84 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS 85 #define BOOST_NO_CXX11_NOEXCEPT 86 #define BOOST_NO_CXX11_NULLPTR 87 #define BOOST_NO_CXX11_RVALUE_REFERENCES 88 #define BOOST_NO_CXX11_SCOPED_ENUMS 89 #define BOOST_NO_SFINAE_EXPR 90 #define BOOST_NO_CXX11_SFINAE_EXPR 91 #define BOOST_NO_CXX11_STATIC_ASSERT 92 #define BOOST_NO_CXX11_TEMPLATE_ALIASES 93 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX 94 #define BOOST_NO_CXX11_ALIGNAS 95 #define BOOST_NO_CXX11_ALIGNOF 96 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES 97 #define BOOST_NO_CXX11_INLINE_NAMESPACES 98 #define BOOST_NO_CXX11_REF_QUALIFIERS 99 #define BOOST_NO_CXX11_FINAL 100 #define BOOST_NO_CXX11_OVERRIDE 101 #define BOOST_NO_CXX11_THREAD_LOCAL 102 #define BOOST_NO_CXX11_UNRESTRICTED_UNION 103 104 //__cpp_decltype 200707 possibly? 105 #define BOOST_NO_CXX11_DECLTYPE 106 #define BOOST_NO_CXX11_DECLTYPE_N3276 107 108 #if !defined(__cpp_unicode_characters) || (__cpp_unicode_characters < 200704) 109 # define BOOST_NO_CXX11_CHAR16_T 110 # define BOOST_NO_CXX11_CHAR32_T 111 #endif 112 #if !defined(__cpp_unicode_literals) || (__cpp_unicode_literals < 200710) 113 # define BOOST_NO_CXX11_UNICODE_LITERALS 114 #endif 115 #if !defined(__cpp_user_defined_literals) || (__cpp_user_defined_literals < 200809) 116 # define BOOST_NO_CXX11_USER_DEFINED_LITERALS 117 #endif 118 #if !defined(__cpp_variadic_templates) || (__cpp_variadic_templates < 200704) 119 # define BOOST_NO_CXX11_VARIADIC_TEMPLATES 120 #endif 121 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 200907) 122 # define BOOST_NO_CXX11_CONSTEXPR 123 #endif 124 #if !defined(__cpp_lambdas) || (__cpp_lambdas < 200907) 125 # define BOOST_NO_CXX11_LAMBDAS 126 #endif 127 #if !defined(__cpp_range_based_for) || (__cpp_range_based_for < 200710) 128 # define BOOST_NO_CXX11_RANGE_BASED_FOR 129 #endif 130 #if !defined(__cpp_raw_strings) || (__cpp_raw_strings < 200610) 131 # define BOOST_NO_CXX11_RAW_LITERALS 132 #endif 133 134 135 // C++ 14: 136 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) 137 # define BOOST_NO_CXX14_AGGREGATE_NSDMI 138 #endif 139 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) 140 # define BOOST_NO_CXX14_BINARY_LITERALS 141 #endif 142 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) 143 # define BOOST_NO_CXX14_CONSTEXPR 144 #endif 145 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) 146 # define BOOST_NO_CXX14_DECLTYPE_AUTO 147 #endif 148 #if (__cplusplus < 201304) // There's no SD6 check for this.... 149 # define BOOST_NO_CXX14_DIGIT_SEPARATORS 150 #endif 151 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) 152 # define BOOST_NO_CXX14_GENERIC_LAMBDAS 153 #endif 154 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) 155 # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES 156 #endif 157 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) 158 # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION 159 #endif 160 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) 161 # define BOOST_NO_CXX14_VARIABLE_TEMPLATES 162 #endif 163 164 // C++17 165 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606) 166 # define BOOST_NO_CXX17_STRUCTURED_BINDINGS 167 #endif 168 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606) 169 # define BOOST_NO_CXX17_INLINE_VARIABLES 170 #endif 171 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603) 172 # define BOOST_NO_CXX17_FOLD_EXPRESSIONS 173 #endif 174 175 #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) 176 # define BOOST_NO_CXX17_IF_CONSTEXPR 177 #endif 178 179 #ifdef c_plusplus 180 // EDG has "long long" in non-strict mode 181 // However, some libraries have insufficient "long long" support 182 // #define BOOST_HAS_LONG_LONG 183 #endif