Чем назвать массив флагов? - PullRequest
2 голосов
/ 28 мая 2010

У меня есть проект, в котором множество объектов удерживают состояние, поддерживая простые логические флаги. Их много, поэтому я поддерживаю их в пределах uint32_t и использую битовую маскировку. Теперь есть так много флагов, которые нужно отслеживать, я создал для них абстракцию (просто класс, заключающий uint32_t) в set(), clear() и т. Д.

Мой вопрос: Какое точное, краткое имя для этого класса? Какое имя я мог бы дать этому классу, чтобы вы имели разумное представление о том, что он [для] знал только имя?

Некоторые идеи у меня были:

  • FlagBank
  • FlagArray
  • и т.д.

Есть идеи?

Заранее спасибо!
Cheers,
-Крис

Ответы [ 2 ]

10 голосов
/ 28 мая 2010

Стандарт имеет такой шаблон класса и называется std::bitset<N> (N для числа бит / флагов). Фактический объект этого класса может быть назван в соответствии с его назначением, например, state или как-то еще.

2 голосов
/ 28 мая 2010

FlagBank будет достаточно описательным.

Но у меня есть одно предложение. Вместо использования uint32_t и битовой маскировки может быть менее C-подобным использование вектора STL. Он использует специализацию шаблона для логического случая, когда для хранения используется только один бит на элемент. Очень эффективный и НАМНОГО более объектно-ориентированный.

...