Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:44:41

0001 //  (C) Copyright John Maddock 2001 - 2002.
0002 //  (C) Copyright Jens Maurer 2001.
0003 //  (C) Copyright David Abrahams 2002.
0004 //  (C) Copyright Aleksey Gurtovoy 2002.
0005 //  (C) Copyright Markus Schoepflin 2005.
0006 //  Use, modification and distribution are subject to the
0007 //  Boost Software License, Version 1.0. (See accompanying file
0008 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0009 
0010 //  See http://www.boost.org for most recent version.
0011 
0012 //
0013 // Options common to all edg based compilers.
0014 //
0015 // This is included from within the individual compiler mini-configs.
0016 
0017 #ifndef  __EDG_VERSION__
0018 #  error This file requires that __EDG_VERSION__ be defined.
0019 #endif
0020 
0021 #if (__EDG_VERSION__ <= 238)
0022 #   define BOOST_NO_INTEGRAL_INT64_T
0023 #   define BOOST_NO_SFINAE
0024 #endif
0025 
0026 #if (__EDG_VERSION__ <= 240)
0027 #   define BOOST_NO_VOID_RETURNS
0028 #endif
0029 
0030 #if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
0031 #   define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
0032 #endif
0033 
0034 #if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
0035 #   define BOOST_NO_TEMPLATE_TEMPLATES
0036 #endif
0037 
0038 #if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
0039 #   define BOOST_NO_IS_ABSTRACT
0040 #endif
0041 
0042 #if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
0043 #   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
0044 #endif
0045 
0046 // See also kai.hpp which checks a Kai-specific symbol for EH
0047 # if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
0048 #     define BOOST_NO_EXCEPTIONS
0049 # endif
0050 
0051 # if !defined(__NO_LONG_LONG)
0052 #     define BOOST_HAS_LONG_LONG
0053 # else
0054 #     define BOOST_NO_LONG_LONG
0055 # endif
0056 
0057 // Not sure what version was the first to support #pragma once, but
0058 // different EDG-based compilers (e.g. Intel) supported it for ages.
0059 // Add a proper version check if it causes problems.
0060 #define BOOST_HAS_PRAGMA_ONCE
0061 
0062 //
0063 // C++0x features
0064 //
0065 //   See above for BOOST_NO_LONG_LONG
0066 //
0067 #if (__EDG_VERSION__ < 310)
0068 #  define BOOST_NO_CXX11_EXTERN_TEMPLATE
0069 #endif
0070 #if (__EDG_VERSION__ <= 310)
0071 // No support for initializer lists
0072 #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
0073 #endif
0074 #if (__EDG_VERSION__ < 400)
0075 #  define BOOST_NO_CXX11_VARIADIC_MACROS
0076 #endif
0077 
0078 #define BOOST_NO_CXX11_AUTO_DECLARATIONS
0079 #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
0080 #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
0081 #define BOOST_NO_CXX11_DELETED_FUNCTIONS
0082 #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
0083 #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
0084 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
0085 #define BOOST_NO_CXX11_NOEXCEPT
0086 #define BOOST_NO_CXX11_NULLPTR
0087 #define BOOST_NO_CXX11_RVALUE_REFERENCES
0088 #define BOOST_NO_CXX11_SCOPED_ENUMS
0089 #define BOOST_NO_SFINAE_EXPR
0090 #define BOOST_NO_CXX11_SFINAE_EXPR
0091 #define BOOST_NO_CXX11_STATIC_ASSERT
0092 #define BOOST_NO_CXX11_TEMPLATE_ALIASES
0093 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
0094 #define BOOST_NO_CXX11_ALIGNAS
0095 #define BOOST_NO_CXX11_ALIGNOF
0096 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
0097 #define BOOST_NO_CXX11_INLINE_NAMESPACES
0098 #define BOOST_NO_CXX11_REF_QUALIFIERS
0099 #define BOOST_NO_CXX11_FINAL
0100 #define BOOST_NO_CXX11_OVERRIDE
0101 #define BOOST_NO_CXX11_THREAD_LOCAL
0102 #define BOOST_NO_CXX11_UNRESTRICTED_UNION
0103 
0104 //__cpp_decltype 200707 possibly?
0105 #define BOOST_NO_CXX11_DECLTYPE
0106 #define BOOST_NO_CXX11_DECLTYPE_N3276
0107 
0108 #if !defined(__cpp_unicode_characters) || (__cpp_unicode_characters < 200704)
0109 #   define BOOST_NO_CXX11_CHAR16_T
0110 #   define BOOST_NO_CXX11_CHAR32_T
0111 #endif
0112 #if !defined(__cpp_unicode_literals) || (__cpp_unicode_literals < 200710)
0113 #   define BOOST_NO_CXX11_UNICODE_LITERALS
0114 #endif
0115 #if !defined(__cpp_user_defined_literals) || (__cpp_user_defined_literals < 200809)
0116 #   define BOOST_NO_CXX11_USER_DEFINED_LITERALS
0117 #endif
0118 #if !defined(__cpp_variadic_templates) || (__cpp_variadic_templates < 200704)
0119 #   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
0120 #endif
0121 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 200907)
0122 #   define BOOST_NO_CXX11_CONSTEXPR
0123 #endif
0124 #if !defined(__cpp_lambdas) || (__cpp_lambdas < 200907)
0125 #   define BOOST_NO_CXX11_LAMBDAS
0126 #endif
0127 #if !defined(__cpp_range_based_for) || (__cpp_range_based_for < 200710)
0128 #   define BOOST_NO_CXX11_RANGE_BASED_FOR
0129 #endif
0130 #if !defined(__cpp_raw_strings) || (__cpp_raw_strings < 200610)
0131 #   define BOOST_NO_CXX11_RAW_LITERALS
0132 #endif
0133 
0134 
0135 // C++ 14:
0136 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
0137 #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
0138 #endif
0139 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
0140 #  define BOOST_NO_CXX14_BINARY_LITERALS
0141 #endif
0142 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
0143 #  define BOOST_NO_CXX14_CONSTEXPR
0144 #endif
0145 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
0146 #  define BOOST_NO_CXX14_DECLTYPE_AUTO
0147 #endif
0148 #if (__cplusplus < 201304) // There's no SD6 check for this....
0149 #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
0150 #endif
0151 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
0152 #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
0153 #endif
0154 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
0155 #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
0156 #endif
0157 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
0158 #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
0159 #endif
0160 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
0161 #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
0162 #endif
0163 
0164 // C++17
0165 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
0166 #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS
0167 #endif
0168 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
0169 #  define BOOST_NO_CXX17_INLINE_VARIABLES
0170 #endif
0171 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
0172 #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS
0173 #endif
0174 #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
0175 #  define BOOST_NO_CXX17_IF_CONSTEXPR
0176 #endif
0177 #if !defined(__cpp_nontype_template_parameter_auto) || (__cpp_nontype_template_parameter_auto < 201606)
0178 #  define BOOST_NO_CXX17_AUTO_NONTYPE_TEMPLATE_PARAMS
0179 #endif
0180 
0181 #ifdef c_plusplus
0182 // EDG has "long long" in non-strict mode
0183 // However, some libraries have insufficient "long long" support
0184 // #define BOOST_HAS_LONG_LONG
0185 #endif