Compartilhar via


Erro do compilador C2450

expressão switch do tipo 'tipo' é inválido

A expressão switch é avaliada como um tipo inválido. Ela deve ser avaliada para um tipo inteiro ou um tipo de classe com conversão inequívoca em um tipo inteiro. Se ela for avaliada como um tipo definido pelo usuário, você deverá fornecer um operador de conversão.

O exemplo a seguir gera o erro C2450:

// C2450.cpp
class X
{
public:
   int i;
} x;

class Y
{
public:
   int i;
   operator int() { return i; }   // conversion operator
} y;

int main()
{
   switch ( x )
   {   // C2450, x is not type int
       // try the following line instead
       // switch ( y ) {
       default:  ;
   }
}