考慮以下(簡化)代碼:在C++中使用enum進行整數位操作可靠/安全嗎?
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而不是枚舉之外,是否有更好的方法來實現我想要做的事情?我真的更喜歡枚舉,但代碼可靠性比可讀性更重要。