/usr/include/boost/predef/compiler
NameSizeModeActions
borland.h18660644editdlrm
clang.h15570644editdlrm
comeau.h16970644editdlrm
compaq.h19240644editdlrm
diab.h15120644editdlrm
digitalmars.h14580644editdlrm
dignus.h14780644editdlrm
edg.h14750644editdlrm
ekopath.h15590644editdlrm
gcc.h19840644editdlrm
gcc_xml.h13960644editdlrm
greenhills.h19330644editdlrm
hp_acc.h16390644editdlrm
iar.h14200644editdlrm
ibm.h21560644editdlrm
intel.h27080644editdlrm
kai.h14000644editdlrm
llvm.h14730644editdlrm
metaware.h13820644editdlrm
metrowerks.h25750644editdlrm
microtec.h13630644editdlrm
mpw.h17540644editdlrm
nvcc.h27740644editdlrm
palm.h14280644editdlrm
pgi.h17480644editdlrm
sgi_mipspro.h19310644editdlrm
sunpro.h23520644editdlrm
tendra.h14280644editdlrm
visualc.h33270644editdlrm
watcom.h14980644editdlrm
Edit: /usr/include/boost/predef/compiler/visualc.h (3327B)
/* Copyright Rene Rivera 2008-2015 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_PREDEF_COMPILER_VISUALC_H #define BOOST_PREDEF_COMPILER_VISUALC_H /* Other compilers that emulate this one need to be detected first. */ #include #include #include /* tag::reference[] = `BOOST_COMP_MSVC` http://en.wikipedia.org/wiki/Visual_studio[Microsoft Visual C/{CPP}] compiler. Version number available as major, minor, and patch. [options="header"] |=== | {predef_symbol} | {predef_version} | `+_MSC_VER+` | {predef_detection} | `+_MSC_FULL_VER+` | V.R.P | `+_MSC_VER+` | V.R.0 |=== NOTE: Release of Visual Studio after 2015 will no longer be identified by Boost Predef as the marketing version number. Instead we use the compiler version number directly, i.e. the _MSC_VER number. */ // end::reference[] #define BOOST_COMP_MSVC BOOST_VERSION_NUMBER_NOT_AVAILABLE #if defined(_MSC_VER) # if !defined (_MSC_FULL_VER) # define BOOST_COMP_MSVC_BUILD 0 # else /* how many digits does the build number have? */ # if _MSC_FULL_VER / 10000 == _MSC_VER /* four digits */ # define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 10000) # elif _MSC_FULL_VER / 100000 == _MSC_VER /* five digits */ # define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 100000) # else # error "Cannot determine build number from _MSC_FULL_VER" # endif # endif /* VS2014 was skipped in the release sequence for MS. Which means that the compiler and VS product versions are no longer in sync. Hence we need to use different formulas for mapping from MSC version to VS product version. VS2017 is a total nightmare when it comes to version numbers. Hence to avoid arguments relating to that both present and future.. Any version after VS2015 will use solely the compiler version, i.e. cl.exe, as the version number here. */ # if (_MSC_VER > 1900) # define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\ _MSC_VER/100,\ _MSC_VER%100,\ BOOST_COMP_MSVC_BUILD) # elif (_MSC_VER >= 1900) # define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\ _MSC_VER/100-5,\ _MSC_VER%100,\ BOOST_COMP_MSVC_BUILD) # else # define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\ _MSC_VER/100-6,\ _MSC_VER%100,\ BOOST_COMP_MSVC_BUILD) # endif #endif #ifdef BOOST_COMP_MSVC_DETECTION # if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) # define BOOST_COMP_MSVC_EMULATED BOOST_COMP_MSVC_DETECTION # else # undef BOOST_COMP_MSVC # define BOOST_COMP_MSVC BOOST_COMP_MSVC_DETECTION # endif # define BOOST_COMP_MSVC_AVAILABLE # include #endif #define BOOST_COMP_MSVC_NAME "Microsoft Visual C/C++" #endif #include BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MSVC,BOOST_COMP_MSVC_NAME) #ifdef BOOST_COMP_MSVC_EMULATED #include BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MSVC_EMULATED,BOOST_COMP_MSVC_NAME) #endif