什么是-std = C ++ 11和-std = GNU ++ 11之间的差异?什么是-std =

2019-05-14 04:26发布

之间有什么区别-std=c++11-std=gnu++11为gcc和铛编译参数? 用同样的问题c99gnu99 ? 我知道C ++和C标准,它在我感兴趣的参数的差异。

我读的地方,它有一些扩展,这样做,但它不是我清楚哪些以及如何一个或另一个新项目之间进行选择。

Answer 1:

正如你已经发现了自己,这两个选项之间的区别是,违反/扩展了C ++标准GNU扩展是否启用。 的GNU C ++扩展中描述这里 。 你也可以使用大部分的GNU C扩展(描述这里 )在你的C ++程序。 这也将是阅读有关的有用-Wpedantic GCC选择这里 。

需要注意的是一些扩展还可以在使用效果时-std=c++11 ,只要不违反标准。 例如,使用MinGW的编译器的时候,我需要一个工作扩展Boost.Lexical_Cast 。 但是,只要你不使用其中任何一个,你是关闭坚持标准,而不扩展最大的可移植性更好。 这可能会派上用场,如果你发现自己被迫改变编译器。



文章来源: What are the differences between -std=c++11 and -std=gnu++11?