TGViewer
Библиотека С# С++ Библиотека С# С++ @cpluscsharp · 10.1K subscribers
Post #582 1.39K
## C++ enum class: безопасно, но местами раздражает

enum class даёт строгую типизацию и не позволяет случайно смешивать значения с обычными числами.

Но есть нюанс: даже если enum используется как набор флагов,


Flags::Read | Flags::Write


не скомпилируется.

Для |, &, ^, ~ придётся вручную определить операторы и приводить значения к базовому типу.

Это правильное поведение с точки зрения type safety, но бойлерплейта становится заметно больше.

Поэтому в некоторых C++-проектах для битовых флагов до сих пор используют обычный enum внутри namespace: меньше защиты, зато код значительно проще.
  • 👍 4
  • ❤ 3
  • 🔥 2
More from @cpluscsharp
  1. Sep 14, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 1…
  2. Sep 13, 2026💡 C++: std::map<std::string, ...> не обязан создавать временный std::string при каждом по…
  3. Sep 13, 2026🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку Можно годами смотреть…
  4. Sep 9, 2026🖥 C++: объект уничтожен, а 16 МиБ всё ещё заняты std::weak_ptr может удерживать память да…
  5. Sep 2, 2026C++26 получил новый контейнер `std::hive` - что-то между `std::vector` и `std::list`. Глав…
  6. Aug 23, 2026Бесплатная книга, после которой компиляторы перестают казаться магией По ходу книги вы соб…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →