же enum class?
Если у меня таких состояний будет много, то я всегда могу же в enum class`е дополнить его и работать соответственно, но придётся каждый раз дополнительный код писать, есть решение, которое может это сделать немного быстрее?
Да, для состояний стандартное решение – это перечисление
а состояние может принимать несколько значений одновременно?
У одного предмета же может быть много состояний, логично?
тогда тебе enum с битмаской
У человека же может быть состояние - лежит и дышит одновременно?
если состояний меньше 64 enum class State : std::uint64_t { None = 0, Idle = 1, Running = 1 << 1, Jumping = 1 << 2, ... } bool HasState(std::uint64_t state, State toCheck) { return state & (std::uint64_t(toCkeck)); }
вот, я на это и намекаю.
но если не принципиально enum class, то лучше юзать просто enum, так будет проще с битовыми операциями работать
Либо ты перечисляешь все возможные состояния предмета, либо ты определяешь их как композицию частных элементов состояния: (лежит/сидит/стоит) = лежит, (дышит/не дышит)= дышит.
Сори, я тут прочитал как "НЕ МОЖЕТ".
Если создать композицию элементов из частных элементов, то он может быть не юзабелен относительно другого класса
Ну, не понятно с чего. Можно так, можно так.
Обсуждают сегодня