Estoy leyendo un valor enum
de un archivo binario y me gustaría comprobar si el valor es realmente parte de los valores enum
. ¿Cómo puedo hacerlo?¿Cómo verificar si el valor enum es válido?
#include <iostream>
enum Abc
{
A = 4,
B = 8,
C = 12
};
int main()
{
int v1 = 4;
Abc v2 = static_cast<Abc>(v1);
switch (v2)
{
case A:
std::cout<<"A"<<std::endl;
break;
case B:
std::cout<<"B"<<std::endl;
break;
case C:
std::cout<<"C"<<std::endl;
break;
default :
std::cout<<"no match found"<<std::endl;
}
}
¿Tengo que utilizar el operador switch
o hay una mejor manera?
EDITAR
tengo establecen valores de enumeración y por desgracia no puedo modificarlos. Para empeorar las cosas, que no son continuas (sus valores va de 0, 75,76,80,85,90,95,100, etc.)
Cualquier enumeración es solo un número, por lo que no creo que haya una mejor manera de verificarlo. Probablemente deba definir una estructura más rígida para sus tipos de datos. – Rizo