Avertissement C26818

L’instruction Switch ne couvre pas tous les cas. Envisagez d’ajouter une étiquette «default » (es.79).

Notes

Cette case activée couvre l’étiquette manquante default dans les instructions switch qui basculent sur un type non énumération, tel que int, charetc.

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;
    }
}