目前我在Windows环境下使用C++。我正在使用带有 Service pack 1 的 Visual Studio 2008。
除非我了解 C++11
,否则我从未想过 C++ 版本。似乎有不同的版本,如 ANSI 标准、C++ 98 标准等。
我如何知道我使用的是哪个版本的 C++?
如果我没有 Visual Studio,我知道我可以使用 TC 等其他编译器来编译我的 C++ 代码。在这种情况下,我如何才能知道编译器使用的是哪个版本的 C++。
连续的 C++ 版本中是否对编程概念进行了更改,还是仅在语言设计方面进行了更改?
最佳答案
它不像版本检查那么简单。
每个支持某些 C++11 的编译器都支持 C++11 的不同子集。出于显而易见的原因,还没有编译器宣称完全符合 C++11。
C++11 规范要求定义一个预定义宏 __cplusplus
,其值为 201103L
。但是,您不能单独依赖这个宏。不是在真正的代码中。
相反,您必须依赖特定于编译器的宏来判断编译器的时间以及您使用的是哪个版本的编译器。或者你可以使用 Boost.Config帮助您检测特定功能是否受支持。
关于c++ - 我使用的是哪个版本的 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287475/