Compiler Error C2051

 

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

case expression not constant

Case expressions must be integer constants.

The following sample generates 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;  
   }  
}  

Possible resolution:

// C2051b.cpp  
class X {};  
  
int main() {  
   static X x;  
   int i = 0;  
  
   switch (i) {  
      case 1:  
         break;  
      default:  
         break;  
   }  
}  

Show: