之间有什么区别-std=c++11
和-std=gnu++11
为gcc和铛编译参数? 用同样的问题c99
和gnu99
? 我知道C ++和C标准,它在我感兴趣的参数的差异。
我读的地方,它有一些扩展,这样做,但它不是我清楚哪些以及如何一个或另一个新项目之间进行选择。
之间有什么区别-std=c++11
和-std=gnu++11
为gcc和铛编译参数? 用同样的问题c99
和gnu99
? 我知道C ++和C标准,它在我感兴趣的参数的差异。
我读的地方,它有一些扩展,这样做,但它不是我清楚哪些以及如何一个或另一个新项目之间进行选择。
正如你已经发现了自己,这两个选项之间的区别是,违反/扩展了C ++标准GNU扩展是否启用。 的GNU C ++扩展中描述这里 。 你也可以使用大部分的GNU C扩展(描述这里 )在你的C ++程序。 这也将是阅读有关的有用-Wpedantic
GCC选择这里 。
需要注意的是一些扩展还可以在使用效果时-std=c++11
,只要不违反标准。 例如,使用MinGW的编译器的时候,我需要一个工作扩展Boost.Lexical_Cast
。 但是,只要你不使用其中任何一个,你是关闭坚持标准,而不扩展最大的可移植性更好。 这可能会派上用场,如果你发现自己被迫改变编译器。