我正在讀取來自二進制文件的enum
值,並希望檢查該值是否真的是enum
值的一部分。我該怎麼做?如何檢查枚舉值是否有效?
#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;
}
}
是否必須使用switch
運算符還是有更好的方法嗎?
編輯
我有枚舉值設定,不幸的是我無法修改它們。更糟糕的是,他們是不連續的(它們的值變爲0,75,76,80,85,90,95,100等)
任何枚舉只是一個數字,所以我不認爲有更好的方法來檢查它。您可能應該爲您的數據類型定義更嚴格的結構。 – Rizo