Avertissement C26818
L’instruction Switch ne couvre pas tous les cas. Envisagez d’ajouter une étiquette «default » (es.79).
Notes
Cette vérification couvre l’étiquette manquante default
dans les instructions switch qui basculent sur un type non énumération, tel que int
, char
et ainsi de suite.
Pour plus d’informations, consultez ES.79 : Permet default de gérer les cas courants (uniquement) dans les instructions de base C++.
Exemple
Cet exemple a une étiquette manquante default
lors du basculement d’un int
.
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
}
}
Solution
Pour résoudre ce problème, insérez une default
étiquette pour couvrir tous les cas restants.
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;
}
}
Si aucune action ne default doit être effectuée, insérez une étiquette vide default
pour indiquer que les autres cas n’ont pas été oubliés.
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;
}
}