【发布时间】:2015-01-05 12:17:19
【问题描述】:
我最近开始学习 C++,由于我在 Linux 上,所以我正在使用 G++ 进行编译。
现在,我正在关注的教程说
如果您碰巧有 Linux 或 Mac 环境进行开发 功能,您应该能够直接编译任何示例 从终端只需在命令中包含 C++11 标志 编译器:
并告诉我使用以下命令进行编译:g++ -std=c++0x MY_CODE.cpp -o MY_APP。
现在,我想知道的是,std=c++0x 标志的意义何在?是必需的,还是我可以运行g++ MY_CODE.cpp -o MY_APP?
【问题讨论】:
-
好久没用gcc了,上次查了一下,C++代码的默认模式是C++03,所以如果要使用C++11,就得指定这个标志明确。 (顺便说一句,你为什么不试试呢?)
-
使用不支持的
-std=c++11GCC 版本越来越过时。 -
-std=c++11开启了旧版标准 C++ 上不可用的某些语言功能 -
这对于 gcc-5 来说应该是不必要的,它应该默认为 -std=gnu++11。切换尚未发生,所以谁知道...