考虑以下(简化的)代码:
enum eTestMode
{
TM_BASIC = 1, // 1 << 0
TM_ADV_1 = 1 << 1,
TM_ADV_2 = 1 << 2
};
...
int m_iTestMode; // a "bit field"
bool isSet( eTestMode tsm )
{
return ( (m_iTestMode & tsm) == tsm );
}
void setTestMode( eTestMode tsm )
{
m_iTestMode |= tsm;
}
这是可靠、安全和/或良好的做法吗?或者除了使用 const ints 而不是枚举之外,还有更好的方法来实现我想做的事情吗?我真的更喜欢枚举,但代码可靠性比可读性更重要。