#include <iostream>
enum IsOptionAEnum
{
IsOptionA_YES,
IsOptionA_NO
};
enum IsOptionBEnum
{
IsOptionB_YES,
IsOptionB_NO
};
void TestFunc(IsOptionAEnum optionA, IsOptionBEnum optionB)
{
if (optionA == IsOptionA_YES || optionA == IsOptionB_YES) // typo
{
// ...
}
//if (optionA == IsOptionA_YES || optionB == IsOptionB_YES) // correct one
//{
//}
}
問題>optionA
爲IsOptionAEnum
類型的和不具有IsOptionB_YES
值。爲什麼VS2010的編譯器沒有找到這個錯誤?爲什麼編譯器不會抱怨錯誤枚舉值
如果是編譯器無法找到錯誤的情況,是否有辦法強制執行此限制,以便編譯器能夠找到錯誤?
你可以使用'enum class'es –