github.com/searKing/golang/go@v1.2.74/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(__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(__BORLANDC__)
    72  #  define BOOST_STD_EXTENSION_NAMESPACE stdext
    73  #endif
    74  
    75  
    76  #if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__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  // Fix for VC++ 8.0 on up ( I do not have a previous version to test )
    90  // or clang-cl. If exceptions are off you must manually include the 
    91  // <exception> header before including the <typeinfo> header. Admittedly 
    92  // trying to use Boost libraries or the standard C++ libraries without 
    93  // exception support is not suggested but currently clang-cl ( v 3.4 ) 
    94  // does not support exceptions and must be compiled with exceptions off.
    95  #if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER)))
    96  #include <exception>
    97  #endif
    98  #include <typeinfo>
    99  #if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (defined(__ghs__) && !_HAS_NAMESPACE) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \
   100  	&& !defined(__VXWORKS__)
   101  #  define BOOST_NO_STD_TYPEINFO
   102  #endif  
   103  
   104  //  C++0x headers implemented in 520 (as shipped by Microsoft)
   105  //
   106  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
   107  #  define BOOST_NO_CXX11_HDR_ARRAY
   108  #  define BOOST_NO_CXX11_HDR_CODECVT
   109  #  define BOOST_NO_CXX11_HDR_FORWARD_LIST
   110  #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   111  #  define BOOST_NO_CXX11_HDR_RANDOM
   112  #  define BOOST_NO_CXX11_HDR_REGEX
   113  #  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
   114  #  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
   115  #  define BOOST_NO_CXX11_HDR_UNORDERED_SET
   116  #  define BOOST_NO_CXX11_HDR_TUPLE
   117  #  define BOOST_NO_CXX11_HDR_TYPEINDEX
   118  #  define BOOST_NO_CXX11_HDR_FUNCTIONAL
   119  #  define BOOST_NO_CXX11_NUMERIC_LIMITS
   120  #  define BOOST_NO_CXX11_SMART_PTR
   121  #endif
   122  
   123  #if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
   124    && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
   125  #  define BOOST_NO_CXX11_HDR_TUPLE
   126  #endif
   127  
   128  //  C++0x headers implemented in 540 (as shipped by Microsoft)
   129  //
   130  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
   131  #  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
   132  #  define BOOST_NO_CXX11_HDR_CHRONO
   133  #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
   134  #  define BOOST_NO_CXX11_HDR_FUTURE
   135  #  define BOOST_NO_CXX11_HDR_MUTEX
   136  #  define BOOST_NO_CXX11_HDR_RATIO
   137  #  define BOOST_NO_CXX11_HDR_THREAD
   138  #  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
   139  #endif
   140  
   141  //  C++0x headers implemented in 610 (as shipped by Microsoft)
   142  //
   143  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
   144  #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
   145  #  define BOOST_NO_CXX11_HDR_ATOMIC
   146  #  define BOOST_NO_CXX11_ALLOCATOR
   147  // 540 has std::align but it is not a conforming implementation
   148  #  define BOOST_NO_CXX11_STD_ALIGN
   149  #endif
   150  
   151  // Before 650 std::pointer_traits has a broken rebind template
   152  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
   153  #  define BOOST_NO_CXX11_POINTER_TRAITS
   154  #elif defined(BOOST_MSVC) && BOOST_MSVC < 1910
   155  #  define BOOST_NO_CXX11_POINTER_TRAITS
   156  #endif
   157  
   158  #if defined(__has_include)
   159  #if !__has_include(<shared_mutex>)
   160  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   161  #elif (__cplusplus < 201402) && !defined(_MSC_VER)
   162  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   163  #endif
   164  #elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
   165  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   166  #endif
   167  
   168  // C++14 features
   169  #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
   170  #  define BOOST_NO_CXX14_STD_EXCHANGE
   171  #endif
   172  
   173  // C++17 features
   174  #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)
   175  #  define BOOST_NO_CXX17_STD_APPLY
   176  #  define BOOST_NO_CXX17_ITERATOR_TRAITS
   177  #  define BOOST_NO_CXX17_HDR_STRING_VIEW
   178  #  define BOOST_NO_CXX17_HDR_OPTIONAL
   179  #  define BOOST_NO_CXX17_HDR_VARIANT
   180  #endif
   181  #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709)
   182  #  define BOOST_NO_CXX17_STD_INVOKE
   183  #endif
   184  
   185  #if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0))
   186  // Deprecated std::iterator:
   187  #  define BOOST_NO_STD_ITERATOR
   188  #endif
   189  
   190  #if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
   191  // Intel's compiler can't handle this header yet:
   192  #  define BOOST_NO_CXX11_HDR_ATOMIC
   193  #endif
   194  
   195  
   196  //  520..610 have std::addressof, but it doesn't support functions
   197  //
   198  #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
   199  #  define BOOST_NO_CXX11_ADDRESSOF
   200  #endif
   201  
   202  // Bug specific to VC14, 
   203  // See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t
   204  // and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2
   205  #if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650)
   206  #  define BOOST_NO_CXX11_HDR_CODECVT
   207  #endif
   208  
   209  #if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
   210  // If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr and std::random_shuffle are not available.
   211  // See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
   212  // and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
   213  #  if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
   214  #    define BOOST_NO_AUTO_PTR
   215  #    define BOOST_NO_CXX98_RANDOM_SHUFFLE
   216  #    define BOOST_NO_CXX98_FUNCTION_BASE
   217  #    define BOOST_NO_CXX98_BINDERS
   218  #  endif
   219  #endif
   220  
   221  
   222  //
   223  // Things not supported by the CLR:
   224  #ifdef _M_CEE
   225  #ifndef BOOST_NO_CXX11_HDR_MUTEX
   226  #  define BOOST_NO_CXX11_HDR_MUTEX
   227  #endif
   228  #ifndef BOOST_NO_CXX11_HDR_ATOMIC
   229  #  define BOOST_NO_CXX11_HDR_ATOMIC
   230  #endif
   231  #ifndef BOOST_NO_CXX11_HDR_FUTURE
   232  #  define BOOST_NO_CXX11_HDR_FUTURE
   233  #endif
   234  #ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
   235  #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
   236  #endif
   237  #ifndef BOOST_NO_CXX11_HDR_THREAD
   238  #  define BOOST_NO_CXX11_HDR_THREAD
   239  #endif
   240  #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
   241  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX
   242  #endif
   243  #ifndef BOOST_NO_CXX14_STD_EXCHANGE
   244  #  define BOOST_NO_CXX14_STD_EXCHANGE
   245  #endif
   246  #ifndef BOOST_NO_FENV_H
   247  #  define BOOST_NO_FENV_H
   248  #endif
   249  #endif
   250  
   251  #ifdef _CPPLIB_VER
   252  #  define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
   253  #else
   254  #  define BOOST_DINKUMWARE_STDLIB 1
   255  #endif
   256  
   257  #ifdef _CPPLIB_VER
   258  #  define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
   259  #else
   260  #  define BOOST_STDLIB "Dinkumware standard library version 1.x"
   261  #endif