feat: add FlagsEnum::isEmpty for checking if a FlagsEnum is empty (#5550)

This commit is contained in:
pajlada
2024-08-18 12:22:41 +02:00
committed by GitHub
parent f3cae76abf
commit 66c3bc2112
3 changed files with 24 additions and 0 deletions
+17
View File
@@ -326,6 +326,23 @@ TEST(FlagsEnum, hasNone)
testHasNone<BasicUnscoped>();
}
template <typename E>
consteval void testIsEmpty()
{
using FE = FlagsEnum<E>;
static_assert(FE{}.isEmpty());
static_assert(!FE{E::Foo}.isEmpty());
static_assert(FE{E::None}.isEmpty());
static_assert(!FE{E::Foo, E::Waldo}.isEmpty());
}
TEST(FlagsEnum, isEmpty)
{
testIsEmpty<BasicScoped>();
testIsEmpty<BasicUnscoped>();
}
template <typename T>
constexpr inline auto CONSTRUCTION_VALID = requires() { FlagsEnum<T>{}; };