Erro do compilador C2051
expressão de caso não constante
As expressões de maiúsculas e minúsculas precisam ser constantes inteiros.
O seguinte exemplo gera o erro C2051:
// C2051.cpp
class X {};
int main() {
static X x;
int i = 0;
switch (i) {
case x: // C2051 use constant expression to resolve error
break;
default:
break;
}
}
Resolução possível:
// C2051b.cpp
class X {};
int main() {
static X x;
int i = 0;
switch (i) {
case 1:
break;
default:
break;
}
}