Это правильный способ установить биты перечисления? ⇐ C++
-
Anonymous
Это правильный способ установить биты перечисления?
У меня есть побитовое перечисление для сохранения двух настроек состояния некоторого класса. Я пытаюсь разработать простую функцию для включения или выключения бита. Это правильный и быстрый способ сделать это?
enum myEnum { eeNull = 0, ee1 = 1, ee2 = 2, ee4 = 4, ee8 = 8 }; шаблон встроенный T &SetBit(T &eValue, const int iBit, const bool bState) { return eValue = (T) ((eValue| (iBit * bState)) & ~(iBit * !bState)); } интервал основной() { myEnum е; еЕ = eeNull; SetBit(eE, ee2, true); SetBit(eE, ee1, true); SetBit(eE, ee2, false); вернуть 0; }
У меня есть побитовое перечисление для сохранения двух настроек состояния некоторого класса. Я пытаюсь разработать простую функцию для включения или выключения бита. Это правильный и быстрый способ сделать это?
enum myEnum { eeNull = 0, ee1 = 1, ee2 = 2, ee4 = 4, ee8 = 8 }; шаблон встроенный T &SetBit(T &eValue, const int iBit, const bool bState) { return eValue = (T) ((eValue| (iBit * bState)) & ~(iBit * !bState)); } интервал основной() { myEnum е; еЕ = eeNull; SetBit(eE, ee2, true); SetBit(eE, ee1, true); SetBit(eE, ee2, false); вернуть 0; }
Мобильная версия