Compiler Error C3063

 

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

operator 'operator': all operands must have the same enumeration type

When using operators on enumerators, both operands must be of the enumeration type. For more information, see Using Operators and Enumerations.

The following sample generates C3063:

// C3063.cpp  
// compile with: /clr  
enum class E { a, b } e, mask;  
int main() {  
   if ( ( e & mask ) != 0 ) ;   // C3063 no operator!= (E, int)  
  
   if ( ( e & mask ) != E() )   // OK  
      ;  
}  

Show: