В большом проекте я недавно обнаружил проблему с затенением переменных-членов. Чтобы избежать их в будущем, я хотел ввести -Wshadow, чтобы показать такие проблемы. Однако большинство конструкторов выглядят так:
struct Foo{
int bar1, bar2;
Foo(int bar1, int bar2): bar1(bar1), bar2(bar2){}
}
Это приятно и удобно, но, конечно, компилятор выдает предупреждение, поэтому я получаю спам с предупреждениями в этих местах. Конечно, я мог бы изменить имена параметров или переменных-членов (но как они должны называться? «bar1» уже прекрасно описывает имя...) Но поскольку это большая работа, отвлекающая от реальной проблемы, я бы предпочел например, чтобы gcc игнорировал списки инициализаторов на данный момент.
Есть ли какой-либо флаг/опция/..., который ведет себя как Wshadow, но игнорирует списки инициализаторов?