github.com/searKing/golang/go@v1.2.117/os/signal/cgo/include/boost/predef/compiler/visualc.h (about)

     1  /*
     2  Copyright Rene Rivera 2008-2015
     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  
     8  #ifndef BOOST_PREDEF_COMPILER_VISUALC_H
     9  #define BOOST_PREDEF_COMPILER_VISUALC_H
    10  
    11  /* Other compilers that emulate this one need to be detected first. */
    12  
    13  #include <boost/predef/compiler/clang.h>
    14  
    15  #include <boost/predef/version_number.h>
    16  #include <boost/predef/make.h>
    17  
    18  /* tag::reference[]
    19  = `BOOST_COMP_MSVC`
    20  
    21  http://en.wikipedia.org/wiki/Visual_studio[Microsoft Visual C/{CPP}] compiler.
    22  Version number available as major, minor, and patch.
    23  
    24  [options="header"]
    25  |===
    26  | {predef_symbol} | {predef_version}
    27  
    28  | `+_MSC_VER+` | {predef_detection}
    29  
    30  | `+_MSC_FULL_VER+` | V.R.P
    31  | `+_MSC_VER+` | V.R.0
    32  |===
    33  
    34  NOTE: Release of Visual Studio after 2015 will no longer be identified
    35  by Boost Predef as the marketing version number. Instead we use the
    36  compiler version number directly, i.e. the _MSC_VER number.
    37  */ // end::reference[]
    38  
    39  #define BOOST_COMP_MSVC BOOST_VERSION_NUMBER_NOT_AVAILABLE
    40  
    41  #if defined(_MSC_VER)
    42  #   if !defined (_MSC_FULL_VER)
    43  #       define BOOST_COMP_MSVC_BUILD 0
    44  #   else
    45          /* how many digits does the build number have? */
    46  #       if _MSC_FULL_VER / 10000 == _MSC_VER
    47              /* four digits */
    48  #           define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 10000)
    49  #       elif _MSC_FULL_VER / 100000 == _MSC_VER
    50              /* five digits */
    51  #           define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 100000)
    52  #       else
    53  #           error "Cannot determine build number from _MSC_FULL_VER"
    54  #       endif
    55  #   endif
    56      /*
    57      VS2014 was skipped in the release sequence for MS. Which
    58      means that the compiler and VS product versions are no longer
    59      in sync. Hence we need to use different formulas for
    60      mapping from MSC version to VS product version.
    61  
    62      VS2017 is a total nightmare when it comes to version numbers.
    63      Hence to avoid arguments relating to that both present and
    64      future.. Any version after VS2015 will use solely the compiler
    65      version, i.e. cl.exe, as the version number here.
    66      */
    67  #   if (_MSC_VER > 1900)
    68  #       define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\
    69              _MSC_VER/100,\
    70              _MSC_VER%100,\
    71              BOOST_COMP_MSVC_BUILD)
    72  #   elif (_MSC_VER >= 1900)
    73  #       define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\
    74              _MSC_VER/100-5,\
    75              _MSC_VER%100,\
    76              BOOST_COMP_MSVC_BUILD)
    77  #   else
    78  #       define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\
    79              _MSC_VER/100-6,\
    80              _MSC_VER%100,\
    81              BOOST_COMP_MSVC_BUILD)
    82  #   endif
    83  #endif
    84  
    85  #ifdef BOOST_COMP_MSVC_DETECTION
    86  #   if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED)
    87  #       define BOOST_COMP_MSVC_EMULATED BOOST_COMP_MSVC_DETECTION
    88  #   else
    89  #       undef BOOST_COMP_MSVC
    90  #       define BOOST_COMP_MSVC BOOST_COMP_MSVC_DETECTION
    91  #   endif
    92  #   define BOOST_COMP_MSVC_AVAILABLE
    93  #   include <boost/predef/detail/comp_detected.h>
    94  #endif
    95  
    96  #define BOOST_COMP_MSVC_NAME "Microsoft Visual C/C++"
    97  
    98  #endif
    99  
   100  #include <boost/predef/detail/test.h>
   101  BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MSVC,BOOST_COMP_MSVC_NAME)
   102  
   103  #ifdef BOOST_COMP_MSVC_EMULATED
   104  #include <boost/predef/detail/test.h>
   105  BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MSVC_EMULATED,BOOST_COMP_MSVC_NAME)
   106  #endif