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

     1  //  (C) Copyright John Maddock 2001 - 2003.
     2  //  (C) Copyright Jens Maurer 2001.
     3  //  (C) Copyright Peter Dimov 2001.
     4  //  (C) Copyright David Abrahams 2002.
     5  //  (C) Copyright Guillaume Melquiond 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  //  Dinkumware standard library config:
    13  
    14  #if !defined(_YVALS) && !defined(_CPPLIB_VER)
    15  #include <boost/config/no_tr1/utility.hpp>
    16  #if !defined(_YVALS) && !defined(_CPPLIB_VER)
    17  #error This is not the Dinkumware lib!
    18  #endif
    19  #endif
    20  
    21  
    22  #if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
    23     // full dinkumware 3.06 and above
    24     // fully conforming provided the compiler supports it:
    25  #  if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(BOOST_BORLANDC) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700))   // can be defined in yvals.h
    26  #     define BOOST_NO_STDC_NAMESPACE
    27  #  endif
    28  #  if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
    29  #     define BOOST_NO_STD_ALLOCATOR
    30  #  endif
    31  #  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
    32  #  if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
    33        // if this lib version is set up for vc6 then there is no std::use_facet:
    34  #     define BOOST_NO_STD_USE_FACET
    35  #     define BOOST_HAS_TWO_ARG_USE_FACET
    36        // C lib functions aren't in namespace std either:
    37  #     define BOOST_NO_STDC_NAMESPACE
    38        // and nor is <exception>
    39  #     define BOOST_NO_EXCEPTION_STD_NAMESPACE
    40  #  endif
    41  // There's no numeric_limits<long long> support unless _LONGLONG is defined:
    42  #  if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
    43  #     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
    44  #  endif
    45  // 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
    46  // and no <slist> at all
    47  #else
    48  #  define BOOST_MSVC_STD_ITERATOR 1
    49  #  define BOOST_NO_STD_ITERATOR
    50  #  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
    51  #  define BOOST_NO_STD_ALLOCATOR
    52  #  define BOOST_NO_STDC_NAMESPACE
    53  #  define BOOST_NO_STD_USE_FACET
    54  #  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
    55  #  define BOOST_HAS_MACRO_USE_FACET
    56  #  ifndef _CPPLIB_VER
    57        // Updated Dinkum library defines this, and provides
    58        // its own min and max definitions, as does MTA version.
    59  #     ifndef __MTA__ 
    60  #        define BOOST_NO_STD_MIN_MAX
    61  #     endif
    62  #     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
    63  #  endif
    64  #endif
    65  
    66  //
    67  // std extension namespace is stdext for vc7.1 and later, 
    68  // the same applies to other compilers that sit on top
    69  // of vc7.1 (Intel and Comeau):
    70  //
    71  #if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(BOOST_BORLANDC)
    72  #  define BOOST_STD_EXTENSION_NAMESPACE stdext
    73  #endif
    74  
    75  
    76  #if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(BOOST_BORLANDC)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
    77     // if we're using a dinkum lib that's
    78     // been configured for VC6/7 then there is
    79     // no iterator traits (true even for icl)
    80  #  define BOOST_NO_STD_ITERATOR_TRAITS
    81  #endif
    82  
    83  #if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
    84  // Intel C++ chokes over any non-trivial use of <locale>
    85  // this may be an overly restrictive define, but regex fails without it:
    86  #  define BOOST_NO_STD_LOCALE
    87  #endif
    88  
    89  #if ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER))) && (_MSC_VER < 1800)
    90  // Fix for VC++ 8.0 on up ( I do not have a previous version to test )
    91  // or clang-cl. If exceptions are off you must manually include the 
    92  // <exception> header before including the <typeinfo> header. Admittedly 
    93  // trying to use Boost libraries or the standard C++ libraries without 
    94  // exception support is not suggested but currently clang-cl ( v 3.4 ) 
    95  // does not support exceptions and must be compiled with exceptions off.
    96  #if !_HAS_EXCEPTIONS
    97  #include <exception>
    98  #endif
    99  #include <typeinfo>
   100  #if !_HAS_EXCEPTIONS
   101  #  define BOOST_NO_STD_TYPEINFO
   102  #endif  
   103  #endif
   104  #if defined(__ghs__) && !_HAS_NAMESPACE
   105  #  define BOOST_NO_STD_TYPEINFO
   106  #endif
   107  
   108  //  C++0x headers implemented in 520 (as shipped by Microsoft)
   109  //
   110  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
   111  #  define BOOST_NO_CXX11_HDR_ARRAY
   112  #  define BOOST_NO_CXX11_HDR_CODECVT
   113  #  define BOOST_NO_CXX11_HDR_FORWARD_LIST
   114  #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   115  #  define BOOST_NO_CXX11_HDR_RANDOM
   116  #  define BOOST_NO_CXX11_HDR_REGEX
   117  #  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
   118  #  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
   119  #  define BOOST_NO_CXX11_HDR_UNORDERED_SET
   120  #  define BOOST_NO_CXX11_HDR_TUPLE
   121  #  define BOOST_NO_CXX11_HDR_TYPEINDEX
   122  #  define BOOST_NO_CXX11_HDR_FUNCTIONAL
   123  #  define BOOST_NO_CXX11_NUMERIC_LIMITS
   124  #  define BOOST_NO_CXX11_SMART_PTR
   125  #endif
   126  
   127  #if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
   128    && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
   129  #  define BOOST_NO_CXX11_HDR_TUPLE
   130  #endif
   131  
   132  //  C++0x headers implemented in 540 (as shipped by Microsoft)
   133  //
   134  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
   135  #  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
   136  #  define BOOST_NO_CXX11_HDR_CHRONO
   137  #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
   138  #  define BOOST_NO_CXX11_HDR_FUTURE
   139  #  define BOOST_NO_CXX11_HDR_MUTEX
   140  #  define BOOST_NO_CXX11_HDR_RATIO
   141  #  define BOOST_NO_CXX11_HDR_THREAD
   142  #  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
   143  #  define BOOST_NO_CXX11_HDR_EXCEPTION
   144  #endif
   145  
   146  //  C++0x headers implemented in 610 (as shipped by Microsoft)
   147  //
   148  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
   149  #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   150  #  define BOOST_NO_CXX11_HDR_ATOMIC
   151  #  define BOOST_NO_CXX11_ALLOCATOR
   152  // 540 has std::align but it is not a conforming implementation
   153  #  define BOOST_NO_CXX11_STD_ALIGN
   154  #endif
   155  
   156  // Before 650 std::pointer_traits has a broken rebind template
   157  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
   158  #  define BOOST_NO_CXX11_POINTER_TRAITS
   159  #elif defined(BOOST_MSVC) && BOOST_MSVC < 1910
   160  #  define BOOST_NO_CXX11_POINTER_TRAITS
   161  #endif
   162  
   163  #if defined(__has_include)
   164  #if !__has_include(<shared_mutex>)
   165  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   166  #elif (__cplusplus < 201402) && !defined(_MSC_VER)
   167  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   168  #endif
   169  #elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
   170  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   171  #endif
   172  
   173  // C++14 features
   174  #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
   175  #  define BOOST_NO_CXX14_STD_EXCHANGE
   176  #endif
   177  
   178  // C++17 features
   179  #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) \
   180   || ((!defined(BOOST_MSVC) || (BOOST_MSVC < 1910))) && (!defined(__clang__) || !defined(_MSC_VER) || (_MSC_VER < 1929))\
   181   || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)
   182  #  define BOOST_NO_CXX17_STD_APPLY
   183  #  define BOOST_NO_CXX17_ITERATOR_TRAITS
   184  #  define BOOST_NO_CXX17_HDR_STRING_VIEW
   185  #  define BOOST_NO_CXX17_HDR_OPTIONAL
   186  #  define BOOST_NO_CXX17_HDR_VARIANT
   187  #  define BOOST_NO_CXX17_HDR_ANY
   188  #  define BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
   189  #  define BOOST_NO_CXX17_HDR_CHARCONV
   190  #  define BOOST_NO_CXX17_HDR_EXECUTION
   191  #  define BOOST_NO_CXX17_HDR_FILESYSTEM
   192  #endif
   193  #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709)
   194  #  define BOOST_NO_CXX17_STD_INVOKE
   195  #endif
   196  
   197  // C++20 features which aren't configured in suffix.hpp correctly:
   198  #if !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 202008L) || !defined(_HAS_CXX20) || (_HAS_CXX20 == 0)
   199  #  define BOOST_NO_CXX20_HDR_CONCEPTS
   200  #endif
   201  
   202  #if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0))
   203  // Deprecated std::iterator:
   204  #  define BOOST_NO_STD_ITERATOR
   205  #endif
   206  
   207  #if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
   208  // Intel's compiler can't handle this header yet:
   209  #  define BOOST_NO_CXX11_HDR_ATOMIC
   210  #endif
   211  
   212  
   213  //  520..610 have std::addressof, but it doesn't support functions
   214  //
   215  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
   216  #  define BOOST_NO_CXX11_ADDRESSOF
   217  #endif
   218  
   219  // Bug specific to VC14, 
   220  // See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t
   221  // and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2
   222  #if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650) && (!defined(_MSVC_STL_VERSION) || (_MSVC_STL_VERSION < 142))
   223  #  define BOOST_NO_CXX11_HDR_CODECVT
   224  #endif
   225  
   226  #if (_MSVC_LANG > 201700) && !defined(BOOST_NO_CXX11_HDR_CODECVT)
   227  //
   228  // <codecvt> is deprected as of C++17, and by default MSVC emits hard errors
   229  // if you try to use it, so mark it as unavailable:
   230  //
   231  #  define BOOST_NO_CXX11_HDR_CODECVT
   232  #endif
   233  
   234  #if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
   235  // If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr and std::random_shuffle are not available.
   236  // See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
   237  // and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
   238  #  if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
   239  #    define BOOST_NO_AUTO_PTR
   240  #    define BOOST_NO_CXX98_RANDOM_SHUFFLE
   241  #    define BOOST_NO_CXX98_FUNCTION_BASE
   242  #    define BOOST_NO_CXX98_BINDERS
   243  #  elif defined(_HAS_DEPRECATED_ADAPTOR_TYPEDEFS) && (_HAS_DEPRECATED_ADAPTOR_TYPEDEFS == 0)
   244  #    define BOOST_NO_CXX98_BINDERS
   245  #  endif
   246  #endif
   247  //
   248  // Things deprecated in C++20:
   249  //
   250  #if defined(_HAS_CXX20)
   251  #  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
   252  #endif
   253  
   254  
   255  //
   256  // Things not supported by the CLR:
   257  #ifdef _M_CEE
   258  #ifndef BOOST_NO_CXX11_HDR_MUTEX
   259  #  define BOOST_NO_CXX11_HDR_MUTEX
   260  #endif
   261  #ifndef BOOST_NO_CXX11_HDR_ATOMIC
   262  #  define BOOST_NO_CXX11_HDR_ATOMIC
   263  #endif
   264  #ifndef BOOST_NO_CXX11_HDR_FUTURE
   265  #  define BOOST_NO_CXX11_HDR_FUTURE
   266  #endif
   267  #ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
   268  #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
   269  #endif
   270  #ifndef BOOST_NO_CXX11_HDR_THREAD
   271  #  define BOOST_NO_CXX11_HDR_THREAD
   272  #endif
   273  #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
   274  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   275  #endif
   276  #ifndef BOOST_NO_CXX14_STD_EXCHANGE
   277  #  define BOOST_NO_CXX14_STD_EXCHANGE
   278  #endif
   279  #ifndef BOOST_NO_FENV_H
   280  #  define BOOST_NO_FENV_H
   281  #endif
   282  #endif
   283  
   284  #ifdef _CPPLIB_VER
   285  #  define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
   286  #else
   287  #  define BOOST_DINKUMWARE_STDLIB 1
   288  #endif
   289  
   290  // BOOST_MSSTL_VERSION: as _MSVC_STL_VERSION, but for earlier releases as well
   291  
   292  #if defined(_MSVC_STL_VERSION) // VS2017 (14.1) and above
   293  #  define BOOST_MSSTL_VERSION _MSVC_STL_VERSION
   294  
   295  #elif defined(_CPPLIB_VER) && _CPPLIB_VER >= 650 // VS2015 (14.0)
   296  #  define BOOST_MSSTL_VERSION 140
   297  
   298  #elif defined(_CPPLIB_VER) && _CPPLIB_VER >= 610 // VS2013 (12.0)
   299  #  define BOOST_MSSTL_VERSION 120
   300  
   301  #elif defined(_CPPLIB_VER) && _CPPLIB_VER >= 540 // VS2012 (11.0)
   302  #  define BOOST_MSSTL_VERSION 110
   303  
   304  #elif defined(_CPPLIB_VER) && _CPPLIB_VER >= 520 // VS2010 (10.0)
   305  #  define BOOST_MSSTL_VERSION 100
   306  
   307  #elif defined(_CPPLIB_VER) && _CPPLIB_VER >= 505 // VS2008SP1 (9.0)
   308  #  define BOOST_MSSTL_VERSION 91
   309  
   310  #elif defined(_CPPLIB_VER) && _CPPLIB_VER >= 503 // VS2008 (also 9.0)
   311  #  define BOOST_MSSTL_VERSION 90
   312  
   313  #elif defined(_CPPLIB_VER) && _CPPLIB_VER >= 405 // VS2005 (8.0)
   314  #  define BOOST_MSSTL_VERSION 80
   315  
   316  #endif
   317  
   318  //
   319  
   320  #ifdef _CPPLIB_VER
   321  #  define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
   322  #else
   323  #  define BOOST_STDLIB "Dinkumware standard library version 1.x"
   324  #endif