これにより、警告C4715が生成されます。すべての制御パスが値を返すわけではありません。Visual C++スイッチの制御パスの難点
int f_no_default(bool true_or_false)
{
switch (true_or_false)
{
case (true) :
return 1;
case (false) :
return 0;
}
}
しかし、これにより、警告C4809が生成されます。switch文に冗長な「デフォルト」ラベルがあります。可能なすべての 'case'ラベルが与えられます。
int f_with_default(bool true_or_false)
{
switch (true_or_false)
{
case (true) :
return 1;
case (false) :
return 0;
default:
return 0;
}
}
どうすればよいですか? (エラーとして扱う警告をオフにする以外)
のVisual Studio 2013 V12.0
打ち鳴らすが、この警告を与える:
別のオプション(あなたの関数名を持つ、より対応)が例外をスローすることですおそらくブールを入れ替えるのは悪い考えです。おそらく/ elseがより良い選択肢でしょうか? –
それは私が行った方法ですよ –