Разбираем, почему хранить статус как
bool,
int или
std::string — плохая идея, и как
enum class решает проблему «закрытого набора значений». На примере модели
Task добавим статусы и приоритеты, сравним
enum и
enum class, обсудим underlying type (например,
std::uint8_t), получение числового кода через
std::to_underlying, а также типичные ошибки и опасные преобразования вроде
static_cast.