有什么方法可以知道我是否在特定的 Microsoft Visual Studio 版本下编译?
_MSC_VER可能_MSC_FULL_VER是你需要的。您还可以在任何最近的 boost 安装中检查visualc.hpp以获取一些使用示例。
_MSC_VER
_MSC_FULL_VER
较新版本的编译器的一些值是:
MSVC++ 14.24 _MSC_VER == 1924 (Visual Studio 2019 version 16.4) MSVC++ 14.23 _MSC_VER == 1923 (Visual Studio 2019 version 16.3) MSVC++ 14.22 _MSC_VER == 1922 (Visual Studio 2019 version 16.2) MSVC++ 14.21 _MSC_VER == 1921 (Visual Studio 2019 version 16.1) MSVC++ 14.2 _MSC_VER == 1920 (Visual Studio 2019 version 16.0) MSVC++ 14.16 _MSC_VER == 1916 (Visual Studio 2017 version 15.9) MSVC++ 14.15 _MSC_VER == 1915 (Visual Studio 2017 version 15.8) MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7) MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6) MSVC++ 14.12 _MSC_VER == 1912 (Visual Studio 2017 version 15.5) MSVC++ 14.11 _MSC_VER == 1911 (Visual Studio 2017 version 15.3) MSVC++ 14.1 _MSC_VER == 1910 (Visual Studio 2017 version 15.0) MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015 version 14.0) MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013 version 12.0) MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012 version 11.0) MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010 version 10.0) MSVC++ 9.0 _MSC_FULL_VER == 150030729 (Visual Studio 2008, SP1) MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008 version 9.0) MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005 version 8.0) MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio .NET 2003 version 7.1) MSVC++ 7.0 _MSC_VER == 1300 (Visual Studio .NET 2002 version 7.0) MSVC++ 6.0 _MSC_VER == 1200 (Visual Studio 6.0 version 6.0) MSVC++ 5.0 _MSC_VER == 1100 (Visual Studio 97 version 5.0)
上面的版本号当然是指您在 about 框中看到的 Visual Studio 的主要版本,而不是名称中的年份。可以在此处找到完整的列表。从最近开始,Visual Studio 将开始单调更新其范围,这意味着您应该检查范围,而不是精确的编译器值。
cl.exe /?将提示使用的版本,例如:
cl.exe /?
c:\program files (x86)\microsoft visual studio 11.0\vc\bin>cl /? Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x86 .....