Как видно здесь, допустимым является код C:
int test = 10;
if (true) {
int test = 10;
}
Мне интересно, есть ли флаг для предупреждения в таких случаях, когда переопределение идентично.
Как видно здесь, допустимым является код C:
int test = 10;
if (true) {
int test = 10;
}
Мне интересно, есть ли флаг для предупреждения в таких случаях, когда переопределение идентично.
Существует: -Wshadow=local
. Передача другого значения (вместо «local») также позволяет более точно контролировать, какие идентификаторы могут и не могут быть затенены.
Он проверяет, совпадает ли имя, что является достаточно хорошим приближением.
-Wshadow Предупреждать всякий раз, когда локальная переменная или объявление типа затеняет другую переменную, параметр, тип или член класса (в C++) или всякий раз, когда затеняется встроенная функция. Обратите внимание, что в C++ компилятор не будет предупреждать, если локальная переменная затеняет структуру/класс/перечисление, но будет предупреждать, если она затеняет явный typedef.
Источник: https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Warning-Options.html
gcc documentation
. - person too honest for this site   schedule 22.06.2017