我正在使用哪个版本的C++

Which version of C++ am I using?

本文关键字:版本 C++      更新时间:2023-10-16

当前我在Windows环境中使用C++。我正在使用Visual Studio 2008 Service pack 1。

我从来没有想过C++版本,除非我知道了C++11。似乎有不同的版本,如ANSI标准,C++98标准等。

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

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

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

这并不像版本检查那么简单。

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

C++11规范要求定义具有值201103L的预定义宏__cplusplus。但是,不能单独依赖此宏。不是真正的代码。

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

Visual Studio 2008?你可以忘记C++11。Visual Studio 2010有一些C++11,但它有缺陷。Visual Studio 2012在某些功能上有更好的C++11,但其他功能却缺失了。Visual Studio 2013对可变模板和其他功能提供了新的支持。但VS落后于其他编译器,如C++11中的gcc。您可以下载所有这些版本的免费快速版。