Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //  Copyright (c) 2017 Dynatrace
0002 //
0003 //  Distributed under the Boost Software License, Version 1.0.
0004 //  See accompanying file LICENSE_1_0.txt or copy at
0005 //  http://www.boost.org/LICENSE_1_0.txt
0006 
0007 //  See http://www.boost.org for most recent version.
0008 
0009 //  Compiler setup for IBM z/OS XL C/C++ compiler.
0010 
0011 // Oldest compiler version currently supported is 2.1 (V2R1)
0012 #if !defined(__IBMCPP__) || !defined(__COMPILER_VER__) || __COMPILER_VER__ < 0x42010000
0013 #  error "Compiler not supported or configured - please reconfigure"
0014 #endif
0015 
0016 #if __COMPILER_VER__ > 0x42010000
0017 #  if defined(BOOST_ASSERT_CONFIG)
0018 #     error "Unknown compiler version - please run the configure tests and report the results"
0019 #  endif
0020 #endif
0021 
0022 #define BOOST_COMPILER "IBM z/OS XL C/C++ version " BOOST_STRINGIZE(__COMPILER_VER__)
0023 #define BOOST_XLCPP_ZOS __COMPILER_VER__
0024 
0025 // -------------------------------------
0026 
0027 #include <features.h> // For __UU, __C99, __TR1, ...
0028 
0029 #if !defined(__IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS)
0030 #  define BOOST_NO_CXX11_DELETED_FUNCTIONS
0031 #  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
0032 #  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
0033 #endif
0034 
0035 // -------------------------------------
0036 
0037 #if defined(__UU) || defined(__C99) || defined(__TR1)
0038 #  define BOOST_HAS_LOG1P
0039 #  define BOOST_HAS_EXPM1
0040 #endif
0041 
0042 #if defined(__C99) || defined(__TR1)
0043 #  define BOOST_HAS_STDINT_H
0044 #else
0045 #  define BOOST_NO_FENV_H
0046 #endif
0047 
0048 // -------------------------------------
0049 
0050 #define BOOST_HAS_NRVO
0051 
0052 #if !defined(__RTTI_ALL__)
0053 #  define BOOST_NO_RTTI
0054 #endif
0055 
0056 #if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS)
0057 #  define BOOST_NO_EXCEPTIONS
0058 #endif
0059 
0060 #if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL)
0061 #  define BOOST_HAS_LONG_LONG
0062 #else
0063 #  define BOOST_NO_LONG_LONG
0064 #endif
0065 
0066 #if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) || defined(_LP64)
0067 #  define BOOST_HAS_MS_INT64
0068 #endif
0069 
0070 #define BOOST_NO_SFINAE_EXPR
0071 #define BOOST_NO_CXX11_SFINAE_EXPR
0072 
0073 #if defined(__IBMCPP_VARIADIC_TEMPLATES)
0074 #  define BOOST_HAS_VARIADIC_TMPL
0075 #else
0076 #  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
0077 #  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
0078 #endif
0079 
0080 #if defined(__IBMCPP_STATIC_ASSERT)
0081 #  define BOOST_HAS_STATIC_ASSERT
0082 #else
0083 #  define BOOST_NO_CXX11_STATIC_ASSERT
0084 #endif
0085 
0086 #if defined(__IBMCPP_RVALUE_REFERENCES)
0087 #  define BOOST_HAS_RVALUE_REFS
0088 #else
0089 #  define BOOST_NO_CXX11_RVALUE_REFERENCES
0090 #endif
0091 
0092 #if !defined(__IBMCPP_SCOPED_ENUM)
0093 #  define BOOST_NO_CXX11_SCOPED_ENUMS
0094 #endif
0095 
0096 #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
0097 #define BOOST_NO_CXX11_TEMPLATE_ALIASES
0098 #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
0099 
0100 #if !defined(__IBMCPP_EXPLICIT_CONVERSION_OPERATORS)
0101 #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
0102 #endif
0103 
0104 #if !defined(__IBMCPP_DECLTYPE)
0105 #  define BOOST_NO_CXX11_DECLTYPE
0106 #else
0107 #  define BOOST_HAS_DECLTYPE
0108 #endif
0109 #define BOOST_NO_CXX11_DECLTYPE_N3276
0110 
0111 #if !defined(__IBMCPP_INLINE_NAMESPACE)
0112 #  define BOOST_NO_CXX11_INLINE_NAMESPACES
0113 #endif
0114 
0115 #if !defined(__IBMCPP_AUTO_TYPEDEDUCTION)
0116 #  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
0117 #  define BOOST_NO_CXX11_AUTO_DECLARATIONS
0118 #  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
0119 #endif
0120 
0121 #if !defined(__IBM_CHAR32_T__)
0122 #  define BOOST_NO_CXX11_CHAR32_T
0123 #endif
0124 #if !defined(__IBM_CHAR16_T__)
0125 #  define BOOST_NO_CXX11_CHAR16_T
0126 #endif
0127 
0128 #if !defined(__IBMCPP_CONSTEXPR)
0129 #  define BOOST_NO_CXX11_CONSTEXPR
0130 #endif
0131 
0132 #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
0133 #define BOOST_NO_CXX11_UNICODE_LITERALS
0134 #define BOOST_NO_CXX11_RAW_LITERALS
0135 #define BOOST_NO_CXX11_RANGE_BASED_FOR
0136 #define BOOST_NO_CXX11_NULLPTR
0137 #define BOOST_NO_CXX11_NOEXCEPT
0138 #define BOOST_NO_CXX11_LAMBDAS
0139 #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
0140 #define BOOST_NO_CXX11_THREAD_LOCAL
0141 #define BOOST_NO_CXX11_REF_QUALIFIERS
0142 #define BOOST_NO_CXX11_FINAL
0143 #define BOOST_NO_CXX11_OVERRIDE
0144 #define BOOST_NO_CXX11_ALIGNAS
0145 #define BOOST_NO_CXX11_ALIGNOF
0146 #define BOOST_NO_CXX11_UNRESTRICTED_UNION
0147 #define BOOST_NO_CXX14_VARIABLE_TEMPLATES
0148 #define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
0149 #define BOOST_NO_CXX14_AGGREGATE_NSDMI
0150 #define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
0151 #define BOOST_NO_CXX14_GENERIC_LAMBDAS
0152 #define BOOST_NO_CXX14_DIGIT_SEPARATORS
0153 #define BOOST_NO_CXX14_DECLTYPE_AUTO
0154 #define BOOST_NO_CXX14_CONSTEXPR
0155 #define BOOST_NO_CXX14_BINARY_LITERALS
0156 #define BOOST_NO_CXX17_STRUCTURED_BINDINGS
0157 #define BOOST_NO_CXX17_INLINE_VARIABLES
0158 #define BOOST_NO_CXX17_FOLD_EXPRESSIONS
0159 #define BOOST_NO_CXX17_IF_CONSTEXPR
0160 #define BOOST_NO_CXX17_AUTO_NONTYPE_TEMPLATE_PARAMS
0161 
0162 // -------------------------------------
0163 
0164 #if defined(__IBM_ATTRIBUTES)
0165 #  define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
0166 #  define BOOST_NOINLINE __attribute__ ((__noinline__))
0167 #  define BOOST_MAY_ALIAS __attribute__((__may_alias__))
0168 // No BOOST_ALIGNMENT - explicit alignment support is broken (V2R1).
0169 #endif
0170 
0171 extern "builtin" long __builtin_expect(long, long);
0172 
0173 #define BOOST_LIKELY(x) __builtin_expect((x) && true, 1)
0174 #define BOOST_UNLIKELY(x) __builtin_expect((x) && true, 0)