c++ - 我使用的是哪个版本的 C++?

标签 c++ visual-studio-2008 compiler-construction c++11 version

目前我在Windows环境下使用C++。我正在使用带有 Service pack 1 的 Visual Studio 2008。

除非我了解 C++11,否则我从未想过 C++ 版本。似乎有不同的版本,如 ANSI 标准、C++ 98 标准等。

  1. 我如何知道我使用的是哪个版本的 C++?

  2. 如果我没有 Visual Studio,我知道我可以使用 TC 等其他编译器来编译我的 C++ 代码。在这种情况下,我如何才能知道编译器使用的是哪个版本的 C++。

  3. 连续的 C++ 版本中是否对编程概念进行了更改,还是仅在语言设计方面进行了更改?

最佳答案

它不像版本检查那么简单。

每个支持某些 C++11 的编译器都支持 C++11 的不同子集。出于显而易见的原因,还没有编译器宣称完全符合 C++11。

C++11 规范要求定义一个预定义宏 __cplusplus,其值为 201103L。但是,您不能单独依赖这个宏。不是在真正的代码中。

相反,您必须依赖特定于编译器的宏来判断编译器的时间以及您使用的是哪个版本的编译器。或者你可以使用 Boost.Config帮助您检测特定功能是否受支持。

关于c++ - 我使用的是哪个版本的 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287475/

相关文章:

c++ - 不使用 vector.end() 迭代 std::vector

c++ - "The input/output library <stdio.h> shall not be used."

c++ - ./configure make make 在 Windows 上使用 icc 安装

visual-studio-2008 - 无法在 Development Fabric 中运行 "HelloWorld"Azure 示例

wpf - 为 WPF 设计数据模板

c++ - vs2010中的变量排列

javascript - 为什么非编译脚本语言不适合用于密集计算?

c++ - 我可以有一个跨平台跨技术的解决方案吗?

vb.net - 在 VB.NET 中的行为类似于 Func

c++ - 让 Cairo 图形与 MFC 一起工作的小例子?