Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:40:48

0001 //  (C) Copyright John Maddock 2001 - 2003.
0002 //  (C) Copyright Toon Knapen 2001 - 2003.
0003 //  (C) Copyright Lie-Quan Lee 2001.
0004 //  (C) Copyright Markus Schoepflin 2002 - 2003.
0005 //  (C) Copyright Beman Dawes 2002 - 2003.
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 //  Visual Age (IBM) C++ compiler setup:
0013 
0014 #if __IBMCPP__ <= 501
0015 #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
0016 #  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
0017 #endif
0018 
0019 #if (__IBMCPP__ <= 502)
0020 // Actually the compiler supports inclass member initialization but it
0021 // requires a definition for the class member and it doesn't recognize
0022 // it as an integral constant expression when used as a template argument.
0023 #  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
0024 #  define BOOST_NO_INTEGRAL_INT64_T
0025 #  define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
0026 #endif
0027 
0028 #if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
0029 #  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
0030 #endif
0031 
0032 #if (__IBMCPP__ <= 1110)
0033 // XL C++ V11.1 and earlier versions may not always value-initialize
0034 // a temporary object T(), when T is a non-POD aggregate class type.
0035 // Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
0036 // high priority. -- Niels Dekker (LKEB), May 2010.
0037 #  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
0038 #endif
0039 
0040 //
0041 // On AIX thread support seems to be indicated by _THREAD_SAFE:
0042 //
0043 #ifdef _THREAD_SAFE
0044 #  define BOOST_HAS_THREADS
0045 #endif
0046 
0047 #define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
0048 
0049 //
0050 // versions check:
0051 // we don't support Visual age prior to version 5:
0052 #if __IBMCPP__ < 500
0053 #error "Compiler not supported or configured - please reconfigure"
0054 #endif
0055 //
0056 // last known and checked version is 1210:
0057 #if (__IBMCPP__ > 1210)
0058 #  if defined(BOOST_ASSERT_CONFIG)
0059 #     error "boost: Unknown compiler version - please run the configure tests and report the results"
0060 #  endif
0061 #endif
0062 
0063 // Some versions of the compiler have issues with default arguments on partial specializations
0064 #if __IBMCPP__ <= 1010
0065 #define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
0066 #endif
0067 
0068 // Type aliasing hint. Supported since XL C++ 13.1
0069 #if (__IBMCPP__ >= 1310)
0070 #  define BOOST_MAY_ALIAS __attribute__((__may_alias__))
0071 #endif
0072 
0073 //
0074 // C++0x features
0075 //
0076 //   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
0077 //
0078 #if ! __IBMCPP_AUTO_TYPEDEDUCTION
0079 #  define BOOST_NO_CXX11_AUTO_DECLARATIONS
0080 #  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
0081 #endif
0082 #if ! __IBMCPP_UTF_LITERAL__
0083 #  define BOOST_NO_CXX11_CHAR16_T
0084 #  define BOOST_NO_CXX11_CHAR32_T
0085 #endif
0086 #if ! __IBMCPP_CONSTEXPR
0087 #  define BOOST_NO_CXX11_CONSTEXPR
0088 #endif
0089 #if ! __IBMCPP_DECLTYPE
0090 #  define BOOST_NO_CXX11_DECLTYPE
0091 #else
0092 #  define BOOST_HAS_DECLTYPE
0093 #endif
0094 #define BOOST_NO_CXX11_DECLTYPE_N3276
0095 #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
0096 #define BOOST_NO_CXX11_DELETED_FUNCTIONS
0097 #if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
0098 #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
0099 #endif
0100 #if ! __IBMCPP_EXTERN_TEMPLATE
0101 #  define BOOST_NO_CXX11_EXTERN_TEMPLATE
0102 #endif
0103 #if ! __IBMCPP_VARIADIC_TEMPLATES
0104 // not enabled separately at this time
0105 #  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
0106 #endif
0107 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
0108 #define BOOST_NO_CXX11_LAMBDAS
0109 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
0110 #define BOOST_NO_CXX11_NOEXCEPT
0111 #define BOOST_NO_CXX11_NULLPTR
0112 #define BOOST_NO_CXX11_RANGE_BASED_FOR
0113 #define BOOST_NO_CXX11_RAW_LITERALS
0114 #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
0115 #if ! __IBMCPP_RVALUE_REFERENCES
0116 #  define BOOST_NO_CXX11_RVALUE_REFERENCES
0117 #endif
0118 #if ! __IBMCPP_SCOPED_ENUM
0119 #  define BOOST_NO_CXX11_SCOPED_ENUMS
0120 #endif
0121 #define BOOST_NO_SFINAE_EXPR
0122 #define BOOST_NO_CXX11_SFINAE_EXPR
0123 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
0124 #if ! __IBMCPP_STATIC_ASSERT
0125 #  define BOOST_NO_CXX11_STATIC_ASSERT
0126 #endif
0127 #define BOOST_NO_CXX11_TEMPLATE_ALIASES
0128 #define BOOST_NO_CXX11_UNICODE_LITERALS
0129 #if ! __IBMCPP_VARIADIC_TEMPLATES
0130 #  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
0131 #endif
0132 #if ! __C99_MACRO_WITH_VA_ARGS
0133 #  define BOOST_NO_CXX11_VARIADIC_MACROS
0134 #endif
0135 #define BOOST_NO_CXX11_ALIGNAS
0136 #define BOOST_NO_CXX11_ALIGNOF
0137 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
0138 #define BOOST_NO_CXX11_INLINE_NAMESPACES
0139 #define BOOST_NO_CXX11_REF_QUALIFIERS
0140 #define BOOST_NO_CXX11_FINAL
0141 #define BOOST_NO_CXX11_OVERRIDE
0142 #define BOOST_NO_CXX11_THREAD_LOCAL
0143 #define BOOST_NO_CXX11_UNRESTRICTED_UNION
0144 
0145 // C++ 14:
0146 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
0147 #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
0148 #endif
0149 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
0150 #  define BOOST_NO_CXX14_BINARY_LITERALS
0151 #endif
0152 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
0153 #  define BOOST_NO_CXX14_CONSTEXPR
0154 #endif
0155 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
0156 #  define BOOST_NO_CXX14_DECLTYPE_AUTO
0157 #endif
0158 #if (__cplusplus < 201304) // There's no SD6 check for this....
0159 #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
0160 #endif
0161 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
0162 #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
0163 #endif
0164 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
0165 #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
0166 #endif
0167 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
0168 #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
0169 #endif
0170 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
0171 #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
0172 #endif
0173 
0174 // C++17
0175 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
0176 #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS
0177 #endif
0178 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
0179 #  define BOOST_NO_CXX17_INLINE_VARIABLES
0180 #endif
0181 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
0182 #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS
0183 #endif
0184 #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
0185 #  define BOOST_NO_CXX17_IF_CONSTEXPR
0186 #endif
0187 #if !defined(__cpp_nontype_template_parameter_auto) || (__cpp_nontype_template_parameter_auto < 201606)
0188 #  define BOOST_NO_CXX17_AUTO_NONTYPE_TEMPLATE_PARAMS
0189 #endif