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

     1  //  Boost compiler configuration selection header file
     2  
     3  //  (C) Copyright John Maddock 2001 - 2003. 
     4  //  (C) Copyright Jens Maurer 2001 - 2002. 
     5  //  Use, modification and distribution are subject to the 
     6  //  Boost Software License, Version 1.0. (See accompanying file 
     7  //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     8  
     9  
    10  //  See http://www.boost.org for most recent version.
    11  
    12  // locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
    13  
    14  // First, check if __has_include is available and <version> include can be located,
    15  // otherwise include <cstddef> to determine if some version of STLport is in use as the std lib
    16  // (do not rely on this header being included since users can short-circuit this header 
    17  //  if they know whose std lib they are using.)
    18  #if defined(__cplusplus) && defined(__has_include)
    19  #  if __has_include(<version>)
    20  // It should be safe to include `<version>` when it is present without checking
    21  // the actual C++ language version as it consists solely of macro definitions.
    22  // [version.syn] p1: The header <version> supplies implementation-dependent
    23  // information about the C++ standard library (e.g., version number and release date).
    24  #    include <version>
    25  #  else
    26  #    include <cstddef>
    27  #  endif
    28  #elif defined(__cplusplus)
    29  #  include <cstddef>
    30  #else
    31  #  include <stddef.h>
    32  #endif
    33  
    34  #if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
    35  // STLPort library; this _must_ come first, otherwise since
    36  // STLport typically sits on top of some other library, we
    37  // can end up detecting that first rather than STLport:
    38  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
    39  
    40  #else
    41  
    42  // If our std lib was not some version of STLport, and has not otherwise
    43  // been detected, then include <utility> as it is about 
    44  // the smallest of the std lib headers that includes real C++ stuff.
    45  // Some std libs do not include their C++-related macros in <cstddef> 
    46  // so this additional include makes sure we get those definitions.
    47  // Note: do not rely on this header being included since users can short-circuit this 
    48  // #include if they know whose std lib they are using.
    49  #if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\
    50     && !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\
    51     && !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\
    52     && !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER)
    53  #include <utility>
    54  #endif
    55  
    56  #if defined(__LIBCOMO__)
    57  // Comeau STL:
    58  #define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
    59  
    60  #elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
    61  // Rogue Wave library:
    62  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
    63  
    64  #elif defined(_LIBCPP_VERSION)
    65  // libc++
    66  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
    67  
    68  #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
    69  // GNU libstdc++ 3
    70  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
    71  
    72  #elif defined(__STL_CONFIG_H)
    73  // generic SGI STL
    74  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
    75  
    76  #elif defined(__MSL_CPP__)
    77  // MSL standard lib:
    78  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
    79  
    80  #elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
    81  // IBM z/OS XL C/C++
    82  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/xlcpp_zos.hpp"
    83  
    84  #elif defined(__IBMCPP__)
    85  // take the default VACPP std lib
    86  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
    87  
    88  #elif defined(MSIPL_COMPILE_H)
    89  // Modena C++ standard library
    90  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
    91  
    92  #elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
    93  // Dinkumware Library (this has to appear after any possible replacement libraries):
    94  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
    95  
    96  #elif defined (BOOST_ASSERT_CONFIG)
    97  // this must come last - generate an error if we don't
    98  // recognise the library:
    99  #  error "Unknown standard library - please configure and report the results to boost.org"
   100  
   101  #endif
   102  
   103  #endif
   104  
   105  #if 0
   106  //
   107  // This section allows dependency scanners to find all the files we *might* include:
   108  //
   109  #  include "boost/config/stdlib/stlport.hpp"
   110  #  include "boost/config/stdlib/libcomo.hpp"
   111  #  include "boost/config/stdlib/roguewave.hpp"
   112  #  include "boost/config/stdlib/libcpp.hpp"
   113  #  include "boost/config/stdlib/libstdcpp3.hpp"
   114  #  include "boost/config/stdlib/sgi.hpp"
   115  #  include "boost/config/stdlib/msl.hpp"
   116  #  include "boost/config/stdlib/xlcpp_zos.hpp"
   117  #  include "boost/config/stdlib/vacpp.hpp"
   118  #  include "boost/config/stdlib/modena.hpp"
   119  #  include "boost/config/stdlib/dinkumware.hpp"
   120  #endif
   121