github.com/searKing/golang/go@v1.2.117/os/signal/cgo/include/boost/config/compiler/xlcpp_zos.hpp (about)

     1  //  Copyright (c) 2017 Dynatrace
     2  //
     3  //  Distributed under the Boost Software License, Version 1.0.
     4  //  See accompanying file LICENSE_1_0.txt or copy at
     5  //  http://www.boost.org/LICENSE_1_0.txt
     6  
     7  //  See http://www.boost.org for most recent version.
     8  
     9  //  Compiler setup for IBM z/OS XL C/C++ compiler.
    10  
    11  // Oldest compiler version currently supported is 2.1 (V2R1)
    12  #if !defined(__IBMCPP__) || !defined(__COMPILER_VER__) || __COMPILER_VER__ < 0x42010000
    13  #  error "Compiler not supported or configured - please reconfigure"
    14  #endif
    15  
    16  #if __COMPILER_VER__ > 0x42010000
    17  #  if defined(BOOST_ASSERT_CONFIG)
    18  #     error "Unknown compiler version - please run the configure tests and report the results"
    19  #  endif
    20  #endif
    21  
    22  #define BOOST_COMPILER "IBM z/OS XL C/C++ version " BOOST_STRINGIZE(__COMPILER_VER__)
    23  #define BOOST_XLCPP_ZOS __COMPILER_VER__
    24  
    25  // -------------------------------------
    26  
    27  #include <features.h> // For __UU, __C99, __TR1, ...
    28  
    29  #if !defined(__IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS)
    30  #  define BOOST_NO_CXX11_DELETED_FUNCTIONS
    31  #  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
    32  #  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
    33  #endif
    34  
    35  // -------------------------------------
    36  
    37  #if defined(__UU) || defined(__C99) || defined(__TR1)
    38  #  define BOOST_HAS_LOG1P
    39  #  define BOOST_HAS_EXPM1
    40  #endif
    41  
    42  #if defined(__C99) || defined(__TR1)
    43  #  define BOOST_HAS_STDINT_H
    44  #else
    45  #  define BOOST_NO_FENV_H
    46  #endif
    47  
    48  // -------------------------------------
    49  
    50  #define BOOST_HAS_NRVO
    51  
    52  #if !defined(__RTTI_ALL__)
    53  #  define BOOST_NO_RTTI
    54  #endif
    55  
    56  #if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS)
    57  #  define BOOST_NO_EXCEPTIONS
    58  #endif
    59  
    60  #if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL)
    61  #  define BOOST_HAS_LONG_LONG
    62  #else
    63  #  define BOOST_NO_LONG_LONG
    64  #endif
    65  
    66  #if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) || defined(_LP64)
    67  #  define BOOST_HAS_MS_INT64
    68  #endif
    69  
    70  #define BOOST_NO_SFINAE_EXPR
    71  #define BOOST_NO_CXX11_SFINAE_EXPR
    72  
    73  #if defined(__IBMCPP_VARIADIC_TEMPLATES)
    74  #  define BOOST_HAS_VARIADIC_TMPL
    75  #else
    76  #  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
    77  #  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
    78  #endif
    79  
    80  #if defined(__IBMCPP_STATIC_ASSERT)
    81  #  define BOOST_HAS_STATIC_ASSERT
    82  #else
    83  #  define BOOST_NO_CXX11_STATIC_ASSERT
    84  #endif
    85  
    86  #if defined(__IBMCPP_RVALUE_REFERENCES)
    87  #  define BOOST_HAS_RVALUE_REFS
    88  #else
    89  #  define BOOST_NO_CXX11_RVALUE_REFERENCES
    90  #endif
    91  
    92  #if !defined(__IBMCPP_SCOPED_ENUM)
    93  #  define BOOST_NO_CXX11_SCOPED_ENUMS
    94  #endif
    95  
    96  #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
    97  #define BOOST_NO_CXX11_TEMPLATE_ALIASES
    98  #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
    99  
   100  #if !defined(__IBMCPP_EXPLICIT_CONVERSION_OPERATORS)
   101  #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
   102  #endif
   103  
   104  #if !defined(__IBMCPP_DECLTYPE)
   105  #  define BOOST_NO_CXX11_DECLTYPE
   106  #else
   107  #  define BOOST_HAS_DECLTYPE
   108  #endif
   109  #define BOOST_NO_CXX11_DECLTYPE_N3276
   110  
   111  #if !defined(__IBMCPP_INLINE_NAMESPACE)
   112  #  define BOOST_NO_CXX11_INLINE_NAMESPACES
   113  #endif
   114  
   115  #if !defined(__IBMCPP_AUTO_TYPEDEDUCTION)
   116  #  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
   117  #  define BOOST_NO_CXX11_AUTO_DECLARATIONS
   118  #  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
   119  #endif
   120  
   121  #if !defined(__IBM_CHAR32_T__)
   122  #  define BOOST_NO_CXX11_CHAR32_T
   123  #endif
   124  #if !defined(__IBM_CHAR16_T__)
   125  #  define BOOST_NO_CXX11_CHAR16_T
   126  #endif
   127  
   128  #if !defined(__IBMCPP_CONSTEXPR)
   129  #  define BOOST_NO_CXX11_CONSTEXPR
   130  #endif
   131  
   132  #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
   133  #define BOOST_NO_CXX11_UNICODE_LITERALS
   134  #define BOOST_NO_CXX11_RAW_LITERALS
   135  #define BOOST_NO_CXX11_RANGE_BASED_FOR
   136  #define BOOST_NO_CXX11_NULLPTR
   137  #define BOOST_NO_CXX11_NOEXCEPT
   138  #define BOOST_NO_CXX11_LAMBDAS
   139  #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
   140  #define BOOST_NO_CXX11_THREAD_LOCAL
   141  #define BOOST_NO_CXX11_REF_QUALIFIERS
   142  #define BOOST_NO_CXX11_FINAL
   143  #define BOOST_NO_CXX11_OVERRIDE
   144  #define BOOST_NO_CXX11_ALIGNAS
   145  #define BOOST_NO_CXX11_ALIGNOF
   146  #define BOOST_NO_CXX11_UNRESTRICTED_UNION
   147  #define BOOST_NO_CXX14_VARIABLE_TEMPLATES
   148  #define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
   149  #define BOOST_NO_CXX14_AGGREGATE_NSDMI
   150  #define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
   151  #define BOOST_NO_CXX14_GENERIC_LAMBDAS
   152  #define BOOST_NO_CXX14_DIGIT_SEPARATORS
   153  #define BOOST_NO_CXX14_DECLTYPE_AUTO
   154  #define BOOST_NO_CXX14_CONSTEXPR
   155  #define BOOST_NO_CXX14_BINARY_LITERALS
   156  #define BOOST_NO_CXX17_STRUCTURED_BINDINGS
   157  #define BOOST_NO_CXX17_INLINE_VARIABLES
   158  #define BOOST_NO_CXX17_FOLD_EXPRESSIONS
   159  #define BOOST_NO_CXX17_IF_CONSTEXPR
   160  
   161  // -------------------------------------
   162  
   163  #if defined(__IBM_ATTRIBUTES)
   164  #  define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
   165  #  define BOOST_NOINLINE __attribute__ ((__noinline__))
   166  #  define BOOST_MAY_ALIAS __attribute__((__may_alias__))
   167  // No BOOST_ALIGNMENT - explicit alignment support is broken (V2R1).
   168  #endif
   169  
   170  extern "builtin" long __builtin_expect(long, long);
   171  
   172  #define BOOST_LIKELY(x) __builtin_expect((x) && true, 1)
   173  #define BOOST_UNLIKELY(x) __builtin_expect((x) && true, 0)