недоступный код — это ошибка времени компиляции в таких языках, как Java. Но почему это просто предупреждение в C ++ & C?
Рассмотрим следующий пример:
#include <iostream>
int f()
{
int a=3;
return a;
int b=6; // oops it is unreachable code
std::cout<<b; // program control never goes here
}
int main()
{
std::cout<<f()<<'\n';
}
Разве компилятор не должен выдавать ошибку в этой программе, потому что операторы после операторов возврата в функции f () никогда не будут выполнены? В чем причина запрета доступа к коду?
Недоступный код не является ошибкой компиляции в C ++, но обычно выдает предупреждение, в зависимости от вашего компилятора и флагов. Если компилятор остановился при обнаружении недоступного кода, у вас будет меньше возможностей для отладки кода, потому что вам также придется вручную удалять ненужный код.
Предупреждение вместо ошибки имеет смысл. Хорошо, что это упомянуто, поскольку можно было непреднамеренно оставить старый код, но в любом случае нет причин не компилировать.
Недоступный код является предупреждением, потому что нет необходимости, чтобы он был ошибкой,
кроме того, этого не всегда легко избежать.
Кроме того, если вы хотите, чтобы это было ошибкой, поддержка GCC и CLANG -Wunreachable-code
так что вы можете использовать -Werror=unreachable-code