我有段:進樣值到枚舉
enum class EnumClass {
};
constexpr EnumClass m0 = static_cast<EnumClass>(0);
constexpr EnumClass m1 = static_cast<EnumClass>(1);
int main()
{
EnumClass aa = m0;
switch (aa) {
case m0 : break;
case m1 : break;
}
}
的gcc 7.0 -Wall標誌合理警告我:
warning: case value '0' not in enumerated type 'EnumClass' [-Wswitch]
warning: case value '1' not in enumerated type 'EnumClass' [-Wswitch]
我想要的是擺脫這一警告的。假設有很多這樣的交換機,所以每次手動關閉/打開此警告都不太方便。此外,我不想在全球範圍內關閉此診斷。
我想要的是以某種方式說(可能在EnumClass定義中有一些宏)給編譯器,任何可能的int值都可以在EnumClass中。有人可以提出一些想法如何實現?
如果你希望映射到每個可能的int值,那麼使用enum有什麼意義? –
我正在爲私人用途寫一個智能枚舉的小型圖書館。我沒有真正使用這樣的枚舉,就像我在這段代碼中寫的那樣。這是這個問題的簡單例子。 –