Поделиться через


Ошибка компилятора C3063

оператор "operator": все операнды должны иметь один и тот же тип перечисления

При использовании операторов для перечислителей оба операнда должны иметь тип перечисления. Дополнительные сведения см. в разделе "Практическое руководство. Определение и использование перечислений в C++/CLI".

Пример

В следующем примере создается 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
      ;
}