#pragma once #include namespace Magnum::Examples { template struct enum_bitset : std::bitset<(std::size_t)Enum::MAX> { static_assert(std::is_same_v>>); static_assert(std::is_same_v>); using std::bitset<(std::size_t)Enum::MAX>::bitset; constexpr bool operator[](Enum x) const { return operator[]((std::size_t)x); } constexpr decltype(auto) operator[](Enum x) { return std::bitset<(std::size_t)Enum::MAX>::operator[]((std::size_t)x); } }; } // namespace Magnum::Examples