【发布时间】:2018-04-09 08:59:21
【问题描述】:
经常提到-std 标志应该用于指定编译 C++ 程序时希望使用的标准(例如,-std=c++11 或 -std=gnu++11)。一个通常没有解决的相关问题(至少据我所知;例如,参见the highly-upvoted comment by Dennis under the selected answer by Oskar N.)是如何确定编译器使用的默认 C++ 标准是什么.
我相信可以通过查看手册页来判断(至少对于 g++),但我想问一下这是否正确以及是否有更明确/具体的方法:
在-std 的描述下,手册页列出了所有 C++ 标准,包括 GNU 方言。在一个特定的标准下,它是相当不显眼的,This is the default for C++ code.(C 标准有类似的声明:This is the default for C code.)。
例如,对于g++/gcc version 5.4.0,它列在gnu++98/gnu++03 下,而对于g++/gcc version 6.4.0,它列在gnu++14 下。
这自然似乎表明了默认标准,但它的写法如此不显眼,我并不完全确定。如果是这样的话,也许这对那些想知道同样问题的其他人有用。其他 C++ 编译器还有其他方便的方法吗?
编辑:我遇到了this related question,但那里的答案相当复杂,并没有产生具体、明确的陈述。一旦得到证实,也许我应该提交这个作为对该问题的答案。
【问题讨论】:
标签: c++ c++11 gcc compilation g++