到達不能コードは、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() の return ステートメントの後のステートメントは決して実行されないため、コンパイラーはこのプログラムでエラーをスローすべきではありませんか? 到達不能コードを許可する理由は何ですか?