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

     1  //  (C) Copyright John Maddock 2001 - 2003.
     2  //  (C) Copyright Toon Knapen 2001 - 2003.
     3  //  (C) Copyright Lie-Quan Lee 2001.
     4  //  (C) Copyright Markus Schoepflin 2002 - 2003.
     5  //  (C) Copyright Beman Dawes 2002 - 2003.
     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  //  Visual Age (IBM) C++ compiler setup:
    13  
    14  #if __IBMCPP__ <= 501
    15  #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
    16  #  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
    17  #endif
    18  
    19  #if (__IBMCPP__ <= 502)
    20  // Actually the compiler supports inclass member initialization but it
    21  // requires a definition for the class member and it doesn't recognize
    22  // it as an integral constant expression when used as a template argument.
    23  #  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
    24  #  define BOOST_NO_INTEGRAL_INT64_T
    25  #  define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
    26  #endif
    27  
    28  #if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
    29  #  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
    30  #endif
    31  
    32  #if (__IBMCPP__ <= 1110)
    33  // XL C++ V11.1 and earlier versions may not always value-initialize
    34  // a temporary object T(), when T is a non-POD aggregate class type.
    35  // Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
    36  // high priority. -- Niels Dekker (LKEB), May 2010.
    37  #  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
    38  #endif
    39  
    40  //
    41  // On AIX thread support seems to be indicated by _THREAD_SAFE:
    42  //
    43  #ifdef _THREAD_SAFE
    44  #  define BOOST_HAS_THREADS
    45  #endif
    46  
    47  #define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
    48  
    49  //
    50  // versions check:
    51  // we don't support Visual age prior to version 5:
    52  #if __IBMCPP__ < 500
    53  #error "Compiler not supported or configured - please reconfigure"
    54  #endif
    55  //
    56  // last known and checked version is 1210:
    57  #if (__IBMCPP__ > 1210)
    58  #  if defined(BOOST_ASSERT_CONFIG)
    59  #     error "boost: Unknown compiler version - please run the configure tests and report the results"
    60  #  endif
    61  #endif
    62  
    63  // Some versions of the compiler have issues with default arguments on partial specializations
    64  #if __IBMCPP__ <= 1010
    65  #define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
    66  #endif
    67  
    68  // Type aliasing hint. Supported since XL C++ 13.1
    69  #if (__IBMCPP__ >= 1310)
    70  #  define BOOST_MAY_ALIAS __attribute__((__may_alias__))
    71  #endif
    72  
    73  //
    74  // C++0x features
    75  //
    76  //   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
    77  //
    78  #if ! __IBMCPP_AUTO_TYPEDEDUCTION
    79  #  define BOOST_NO_CXX11_AUTO_DECLARATIONS
    80  #  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
    81  #endif
    82  #if ! __IBMCPP_UTF_LITERAL__
    83  #  define BOOST_NO_CXX11_CHAR16_T
    84  #  define BOOST_NO_CXX11_CHAR32_T
    85  #endif
    86  #if ! __IBMCPP_CONSTEXPR
    87  #  define BOOST_NO_CXX11_CONSTEXPR
    88  #endif
    89  #if ! __IBMCPP_DECLTYPE
    90  #  define BOOST_NO_CXX11_DECLTYPE
    91  #else
    92  #  define BOOST_HAS_DECLTYPE
    93  #endif
    94  #define BOOST_NO_CXX11_DECLTYPE_N3276
    95  #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
    96  #define BOOST_NO_CXX11_DELETED_FUNCTIONS
    97  #if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
    98  #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
    99  #endif
   100  #if ! __IBMCPP_EXTERN_TEMPLATE
   101  #  define BOOST_NO_CXX11_EXTERN_TEMPLATE
   102  #endif
   103  #if ! __IBMCPP_VARIADIC_TEMPLATES
   104  // not enabled separately at this time
   105  #  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
   106  #endif
   107  #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   108  #define BOOST_NO_CXX11_LAMBDAS
   109  #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
   110  #define BOOST_NO_CXX11_NOEXCEPT
   111  #define BOOST_NO_CXX11_NULLPTR
   112  #define BOOST_NO_CXX11_RANGE_BASED_FOR
   113  #define BOOST_NO_CXX11_RAW_LITERALS
   114  #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
   115  #if ! __IBMCPP_RVALUE_REFERENCES
   116  #  define BOOST_NO_CXX11_RVALUE_REFERENCES
   117  #endif
   118  #if ! __IBMCPP_SCOPED_ENUM
   119  #  define BOOST_NO_CXX11_SCOPED_ENUMS
   120  #endif
   121  #define BOOST_NO_SFINAE_EXPR
   122  #define BOOST_NO_CXX11_SFINAE_EXPR
   123  #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
   124  #if ! __IBMCPP_STATIC_ASSERT
   125  #  define BOOST_NO_CXX11_STATIC_ASSERT
   126  #endif
   127  #define BOOST_NO_CXX11_TEMPLATE_ALIASES
   128  #define BOOST_NO_CXX11_UNICODE_LITERALS
   129  #if ! __IBMCPP_VARIADIC_TEMPLATES
   130  #  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
   131  #endif
   132  #if ! __C99_MACRO_WITH_VA_ARGS
   133  #  define BOOST_NO_CXX11_VARIADIC_MACROS
   134  #endif
   135  #define BOOST_NO_CXX11_ALIGNAS
   136  #define BOOST_NO_CXX11_ALIGNOF
   137  #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
   138  #define BOOST_NO_CXX11_INLINE_NAMESPACES
   139  #define BOOST_NO_CXX11_REF_QUALIFIERS
   140  #define BOOST_NO_CXX11_FINAL
   141  #define BOOST_NO_CXX11_OVERRIDE
   142  #define BOOST_NO_CXX11_THREAD_LOCAL
   143  #define BOOST_NO_CXX11_UNRESTRICTED_UNION
   144  
   145  // C++ 14:
   146  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
   147  #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
   148  #endif
   149  #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
   150  #  define BOOST_NO_CXX14_BINARY_LITERALS
   151  #endif
   152  #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
   153  #  define BOOST_NO_CXX14_CONSTEXPR
   154  #endif
   155  #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
   156  #  define BOOST_NO_CXX14_DECLTYPE_AUTO
   157  #endif
   158  #if (__cplusplus < 201304) // There's no SD6 check for this....
   159  #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
   160  #endif
   161  #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
   162  #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
   163  #endif
   164  #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
   165  #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
   166  #endif
   167  #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
   168  #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
   169  #endif
   170  #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
   171  #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
   172  #endif
   173  
   174  // C++17
   175  #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
   176  #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS
   177  #endif
   178  #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
   179  #  define BOOST_NO_CXX17_INLINE_VARIABLES
   180  #endif
   181  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
   182  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS
   183  #endif
   184  #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
   185  #  define BOOST_NO_CXX17_IF_CONSTEXPR
   186  #endif