gpt4 book ai didi

c++ - -std=c++11 和 -std=gnu++11 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 11:51:16 26 4
gpt4 key购买 nike

-std=c++11-std=gnu++11作为gcc和clang的编译参数有什么区别? c99gnu99 有同样的问题吗?我了解 C++ 和 C 标准,我感兴趣的是参数的差异。

我在某处读到它与某些扩展有关,但我不清楚哪些扩展以及如何为新项目选择一个或另一个。

最佳答案

正如您自己发现的那样,这两个选项之间的区别在于是否启用了违反/扩展 C++ 标准的 GNU 扩展。 GNU C++ 扩展被描述here .您还可以在您的 C++ 程序中使用大多数 GNU C 扩展(描述为 here)。阅读 -Wpedantic GCC 选项 here 也很有用。 .

请注意,某些扩展在使用 -std=c++11 时仍然有效,只要它们不违反标准即可。例如,当使用 MinGW 编译器时,我需要为工作 Boost.Lexical_Cast 提供扩展。但是,只要您不使用它们中的任何一个,您最好还是坚持标准而不进行扩展以获得最大的可移植性。如果您发现自己被迫更改编译器,这可能会派上用场。

关于c++ - -std=c++11 和 -std=gnu++11 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10613126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com