Ошибка компилятора C2051
Выражение регистра не констант
Выражения регистра должны быть целыми константами.
Следующий пример приводит к возникновению ошибки 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;
}
}
Возможное решение
// C2051b.cpp
class X {};
int main() {
static X x;
int i = 0;
switch (i) {
case 1:
break;
default:
break;
}
}