我正在尝试学习 C++,但以前没有使用它或 C 的经验,我看到一些培训 Material 有时试图教我 C 编码而不是 C++。
由于我没有足够的知识来辨别这些书是否试图教我正确的 C++,我想我可以在 g++ 编译器上设置一些参数来解决这个问题。 所以我的问题是:
如果我写的不是纯C++标准的,怎么设置windows的g++编译器不编译?
提前致谢
最佳答案
没有一个编译器是完美的(大多数都没有 100% 按照法律条文实现任何特定的 C++ 标准),但是您可以将警告调高,然后让它们出错:
g++ source.cpp -Wall -Wextra -pedantic -Werror
这将导致大多数非标准行为被彻底拒绝;但是,它也会将一些警示故事变成错误,这可能是您想要的,也可能不是您想要的。
根据您的最佳判断来决定是否要使用-Werror
。就我个人而言,我会推荐它,除非您被迫不被要求包含编写错误的第三方库 header 。
不过,如果它们妨碍您,您始终可以排除特定的警告;例如通过附加 -Wno-unused-variable
。
请查阅您的工具链文档以了解可用的警告开关。
这不会做的是检测符合标准的 C++ 代码中的 C 习语。那是不可能的。
为此,你有更好的书籍、代码审查 session 和你的良心。 :)
关于c++ - 如何让 g++ 强制我遵守 C++ 标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830848/