#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 –