Uyarı C26818
Switch deyimi tüm durumları kapsamaz. 'default' etiketi (es.79) eklemeyi göz önünde bulundurun.
Açıklamalar
Bu denetim, , char
ve gibi int
sabit listesi olmayan bir türe geçiş yapılan switch deyimlerinde eksik default
etiketi kapsar.
Daha fazla bilgi için bkz . ES.79: C++ Temel Yönergeleri'ndeki yaygın durumları işlemek için kullanma default (yalnızca) .
Örnek
Bu örnekte, üzerinde geçiş yaparken etiketi eksikdefault
.int
void fn1();
void fn2();
void foo(int a)
{
switch (a)
{
case 0:
fn1();
break;
case 2:
fn2();
break;
}
}
Çözüm
Bu sorunu çözmek için kalan tüm servis taleplerini kapsayacak bir default
etiket ekleyin.
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;
}
}
Herhangi default bir işlem yapılması gerekmiyorsa, diğer servis taleplerinin unutulmadığını belirtmek için boş default
bir etiket ekleyin.
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;
}
}