コンパイラの警告 (レベル 1) C4715
'function': 値を返さないコントロール パスがあります
指定した関数は、値を返していない可能性があります。
例
// C4715a.cpp
// compile with: /W1 /LD
int func1( int i )
{
if( i )
return 3; // C4715 warning, nothing returned if i == 0
}
この警告を防ぐには、コードを変更して、すべてのパスが関数に戻り値を割り当てるようにします。
// C4715b.cpp
// compile with: /LD
int func1( int i )
{
if( i ) return 3;
else return 0; // OK, always returns a value
}
次の例のように、コードに決して返されない関数の呼び出しが含まれている可能性があります。
// C4715c.cpp
// compile with: /W1 /LD
void fatal()
{
}
int glue()
{
if(0)
return 1;
else if(0)
return 0;
else
fatal(); // C4715
}
コンパイラは fatal
が決して返されないことを知らないため、このコードでも警告が生成されます。 このコードがエラー メッセージを生成しないようにするには、__declspec(noreturn) を使用して fatal
を宣言します。