Aviso C26818
A instrução Switch não abrange todos os casos. Considere adicionar um rótulo 'default' (es.79).
Comentários
Essa verificação aborda o rótulo ausente default
em instruções de comutador que alternam por um tipo de não enumeração, como int
, char
e assim por diante.
Para obter mais informações, consulte ES.79: usar default para tratar casos comuns (somente) nas Diretrizes Principais do C++.
Exemplo
Este exemplo tem um rótulo ausente default
ao comutar um int
.
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
}
}
Solução
Para corrigir esse problema, insira um rótulo default
para cobrir todos os casos restantes.
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;
}
}
Se nenhuma ação default precisar ser tomada, insira um rótulo vazio default
para indicar que os outros casos não foram esquecidos.
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;
}
}