我正在开发一个大型协作 C++ 项目,该项目在各种 Linux、OS X 和 Windows 上开发和运行。我们使用 GCC、Visual Studio C++ 和英特尔 C++ 编译器在这些平台上进行编译。随着越来越多的人开始为项目开发代码,我们开始在编译和运行时看到奇怪的错误,这些错误是特定于特定操作系统上的特定编译器的。这方面的一个例子是隐含包含某些 OS/编译器对似乎为您找到的 header ,意外地从派生类的基类中重载了函数。
我的目标是让 GCC 上的编译更加严格,并在所有平台上捕获更多错误,这样我们就不会一直遇到这些问题。以下是我正在考虑尝试使用 GCC 的标志列表,这些标志是通过 Google 和 GCC 手册页找到的:
- -Wall
- -Wextra
- -Winit-self
- -Wold-style-cast
- -Woverloaded-虚拟
- -Wuninitialized
- -Wmissing-declarations
- -Winit-self
- -ansi
- -pedantic
人们用来使 GCC(以及不太重要的 Visual Studio C++ 和英特尔 C++ 编译器)遵循更严格的 C++ 语言标准的其他标志是什么?请具体说明您正在谈论的编译器和版本,因为其中一些可能不会在所有编译器的所有版本中都实现。
最佳答案
关于c++ - 使 GCC 和其他 C++ 编译器非常严格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/490737/