最近我在编写的 c++ 代码中遇到了编译错误,所以有人问我是否使用了 C++11 编译器,但老实说,我不知道如何检查我的编译器版本!所以知道如何解决这个问题吗??
顺便说一句,我将代码块用作 IDE,其中包括来自 MinGW 的 GCC 编译器和 GDB 调试器。另外,如果我在 Linux 下编译我的 c++ 代码,我应该运行什么命令来了解我的编译器版本?
最佳答案
这可能是一个棘手的问题。 C++11 指的是 标准,而不是编译器的版本。不同的编译器,以及 任何给定编译器的不同版本,通常会实现混合 标准的版本,至少对于最近的版本。更多或 更少,因为 C++11 的任何实现都是相当新的,因此 可能相当有问题。
大多数编译器都有输出版本的选项;许多人会输出它
系统地处于详细模式。对于 g++,请尝试 g++ --version
。最近的
g++ 的版本确实对 C++11 有一些支持,但你必须激活
它与 -std=c++0x
(而不是通常的 -std=c++03
或
-std=c++98
)。正如名称(c++0x
,而不是 c++11
)所示,它
不是真正的 C++11;它是一些(大多数?)的实现
主要的新功能,在基于各种工作的初步版本中
论文,而不是最终标准。
(FWIW:我认为没有任何编译器完全实现了所有 C++11,但我会 喜欢被证明是错误的。)
关于c++ - 我目前正在使用什么 c++ norme?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026150/