Visual Studio 2015中的编译器是什么?
What compiler is in Visual Studio 2015
谁能告诉我Visual Studio 2015中内置的c++项目编译器是什么?我试过它,试过旧版本的编译器,它给了我其他编译结果。是GNU c++ 4.8.2版本还是更新的版本?
他们有自己的编译器,使用Visual c++ _____
这是IDE版本到编译器版本的映射。他们通常在每个主要IDE版本发布一个主要编译器版本。
您可以运行以下命令获得一些有用的信息:
#include <stdio.h>
int main()
{
printf("_MSC_VER : %d n", _MSC_VER);
printf("_MSC_FULL_VER : %d n", _MSC_FULL_VER);
printf("_MSC_BUILD : %d n", _MSC_BUILD);
#ifdef _MSVC_LANG
printf("_MSVC_LANG : C++%d n", (_MSVC_LANG/100)%2000);
#endif
return 0;
}
常用MSVC版本:
msvc++ 9.0 _MSC_VER == 1500 (Visual Studio 2008)
msvc++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)
msvc++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)
msvc++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)
MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)
msvc++ 14.1 _MSC_VER == 1910 (Visual Studio 2017)
宏解释:
_MSVC_LANG:定义为整数字面值,指定编译器所针对的c++语言标准
_MSC_VER:以整数形式包含主版本号和次版本号。"1500"是15.00版本)
_MSC_FULL_VER:以整数形式包含主版本号、次版本号和构建号。"150020706"是15.00.20706版本)
_MSC_BUILD:包含主版本号、次版本号和构建号之后的版本号。"1"为版本1,如15.00.20706.01)
Visual Studio中的C/c++编译器一直是Microsoft c++编译器,由Microsoft构建(不基于其他任何东西)
现在,编译器是这样命名自己的:
Microsoft (R) C/c++优化编译器版本19.00.23026
在VS2015中,编译器可以针对x86和x64,以及ARM。它支持几乎所有的c++ 11和C99,以及大部分的c++ 14,再加上一点点c++ 17(或任何时候)的草案。
基本上,Visual Studio 2015支持编译器Visual c++ 14.0。但要了解更多细节,您可以在这里跟踪c++ 14.0的哪些特性已经实现。
另外,我喜欢Dorin的回答,他指出了一种用代码检查编译器版本的方法。
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- 在使用包含冒号的类似函数的宏时,是什么导致了这种编译器差异?
- 我的设备上的 C++ 编译器版本是什么
- 处理编译器关于可能丢失数据的警告的最优雅方法是什么
- 告诉编译器我希望变量始终存储在寄存器中的正确方法是什么
- GCC,Apple LLVM和MSVC编译器的不同部分的名称是什么?
- IBM XL C/C++ 编译器中的“1587-163”是什么意思?
- 以下代码的输出是什么(答案因差异编译器而异)
- 这个编译器错误是什么意思 - "qualified-id in declaration before ‘=’ token" C++?
- 当编译器看到 std::vector<Typo> 和 std::vector<struct 拼写错误时发出的诊断之间的差异背后的理由是什么>
- 编译器在遇到提取或插入运算符时处理信息(字符串、操纵器等)的顺序是什么?
- 确定空无限循环的编译器行为的最佳方法是什么?
- 编译器中的预处理到底是什么意思
- 编译器减少 std::copy to memcpy (memmove) 的条件是什么?
- 在 C/C++ 中创建对象时编译器优化的边界是什么
- 验证给定C++编译器是否将源代码读取为 C++11 的快速简单代码是什么?
- 编译器无法识别自动,最好的替代品是什么
- 主流C++编译器中 GC 实现的时间线是什么?
- 在 c++ 中定义的预编译器的范围是什么?
- Visual Studio 2015中的编译器是什么?