在一个大型项目中,我最近发现了隐藏成员变量的问题。为了避免将来出现这些问题,我想引入 -Wshadow 来显示这些问题。然而,大多数构造函数看起来像这样:
struct Foo{
int bar1, bar2;
Foo(int bar1, int bar2): bar1(bar1), bar2(bar2){}
}
这很好也很方便,但当然会让编译器发出警告,所以我在这些地方收到垃圾邮件。当然我可以更改参数名称或成员变量(但它们应该叫什么?“bar1”已经完美地描述了这个名称......)但是因为这是很多工作分散了实际问题的注意力,我宁愿现在喜欢让 gcc 忽略初始值设定项列表。
是否有任何标志/选项/...其行为类似于 Wshadow 但忽略初始化列表?