- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用很多很多库的大项目。其中一些是 HDF5、PugiXML、Boost.ASIO、Qt、MuParser 等等。这些库有的是header包含的,有的是预编译的,有的是我自己编译的。我想使用 gcc 选项 -Weffc++
来确保我的代码的质量。
问题是,当我启用该选项时,我收到了 2000 多个警告,当我快速浏览列表时,其中有 1 个与我的项目相关,几乎所有其他内容都来 self 包含的标题!遍历整个列表是非常不切实际的。有没有办法告诉 gcc 分析给定目录中的文件,或者以某种方式排除目录(可能是正则表达式?)。
最佳答案
文档中的评论不是好消息:
When selecting this option, be aware that the standard library headers do not obey all of these guidelines; use ‘grep -v’ to filter out those warnings.
您可以使用 pragmas 暂时禁用警告:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#include <header1>
#include <header2>
#pragma GCC diagnostic push
您还可以使用 -isystem
来指定包含路径,这会抑制来自通过这些路径包含的文件的某些警告。
只是不要使用-Weffc++
。即使在您自己的项目中,它也会产生垃圾。例如,它会要求您为所有 基类定义虚拟析构函数,无论这是否有意义。如果您没有在聚合初始化中初始化每个成员,它会发出警告。我 Handlebars 举在空中说:“那个警告太蠢了!”第一百次,我关闭了 -Weffc++
并继续我的生活。
在代码质量和执行风格方面有更好的工具。我想到了 clang-tidy
、clang-modernize
和 clang-format
等 Clang 工具。
关于c++ - gcc 静态分析器 (Weffc++) : exclude directories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568329/
这个问题在这里已经有了答案: Understanding -Weffc++ (3 个答案) 关闭 4 年前。 我很难理解这个错误。我正在编译 -Weffc++旗帜。 此结构编译正常。 struct
考虑以下程序: #include struct S { S (){} private: void *ptr = nullptr; std::string str = "";
我对 Weffc++ 警告有理解上的问题。 main.cpp: In constructor ‘B::B()’: main.cpp:13:1: warning: ‘B::a’ should be in
我有一个名为 Coord 的类...它有实例数据 x、y。我想重写 * 运算符,以便 * 运算符可用于将 Coord 乘以整数或 double 值!这是我提出的解决方案: Coord& Coord::
我有一些代码 here我正在使用 -Weffc++ -Wall -Wextra 进行编译。 基本上我有这个片段: class base {}; class test : public base { p
我尝试用 std::shared_ptr 编译非常简单的树节点。在我的编译器选项中,我使用了 -Weffc++ 和 -Werror 但它抛出了 2 个我不理解的错误,因此我无法想象解决方案。 最小示例
我收到 -Weffc++ 发出的警告,这似乎是错误的。我可以用第二双眼睛来确认: template class CLASS_TYPE, typename T> class some_class { t
我对一个分为不同子项目的大型项目使用 boost build。这里是 jamroot 文件: project : requirements debug:DEBUG releas
我有一个使用很多很多库的大项目。其中一些是 HDF5、PugiXML、Boost.ASIO、Qt、MuParser 等等。这些库有的是header包含的,有的是预编译的,有的是我自己编译的。我想使用
假设我有这样一个类: class MyClass { private: vector myMember; public: MyClass(const Y
我想知道,-Weffc++ 标志是否有等效的 MSVC(++)?它是几号? 我在 MS website 上的编译器警告/错误列表中没有看到类似的内容. 最佳答案 没有任何等价物。 Visual C++
struct Bar { Bar() {} }; struct Foo { Foo() = default; Bar m_bar; }; int main() { Fo
这是一个重载的||在我的类中定义的运算符: bool operator|| (const MyClass& v) const { return ......; //some calculat
我是一名优秀的程序员,十分优秀!