Upozornění C26818
Příkaz Switch nepokrývá všechny případy. Zvažte přidání popisku 'default' (es.79).
Poznámky
Tato kontrola popisuje chybějící default
popisek v příkazech switch, které přepínají typ výčtu, například int
, char
atd.
Další informace najdete v tématu ES.79: Slouží default ke zpracování běžných případů (pouze) v pokynech pro C++ Core Guidelines.
Příklad
V tomto příkladu default
chybí popisek při přepínání .int
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
}
}
Řešení
Pokud chcete tento problém vyřešit, vložte default
popisek pro pokrytí všech zbývajících případů.
void fn1();
void fn2();
void default_action();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
default:
default_action();
break;
}
}
Pokud není potřeba provést žádnou default akci, vložte prázdný default
popisek, který indikuje, že ostatní případy nebyly zapomenuty.
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
default:
// do nothing for the rest of the cases
break;
}
}