mirror of
https://github.com/BlackMATov/enum.hpp.git
synced 2025-12-15 11:53:50 +07:00
fix any_of/none_of
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
build/*
|
build/*
|
||||||
|
.clangd/*
|
||||||
.vscode/*
|
.vscode/*
|
||||||
CMakeLists.txt.user
|
CMakeLists.txt.user
|
||||||
|
|||||||
@@ -232,8 +232,7 @@ namespace enum_hpp::bitflags
|
|||||||
|
|
||||||
template < typename Enum >
|
template < typename Enum >
|
||||||
constexpr bool any_of(bitflags<Enum> flags, bitflags<Enum> mask) noexcept {
|
constexpr bool any_of(bitflags<Enum> flags, bitflags<Enum> mask) noexcept {
|
||||||
return mask.as_raw() == 0
|
return 0 != (flags.as_raw() & mask.as_raw());
|
||||||
|| (flags.as_raw() & mask.as_raw()) != 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -258,8 +257,7 @@ namespace enum_hpp::bitflags
|
|||||||
|
|
||||||
template < typename Enum >
|
template < typename Enum >
|
||||||
constexpr bool none_of(bitflags<Enum> flags, bitflags<Enum> mask) noexcept {
|
constexpr bool none_of(bitflags<Enum> flags, bitflags<Enum> mask) noexcept {
|
||||||
return mask.as_raw() != 0
|
return 0 == (flags.as_raw() & mask.as_raw());
|
||||||
&& (flags.as_raw() & mask.as_raw()) == 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -337,44 +337,44 @@ TEST_CASE("enum_bitflags") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SUBCASE("any_of") {
|
SUBCASE("any_of") {
|
||||||
STATIC_CHECK(bf::any_of(access::none, access::none));
|
STATIC_CHECK_FALSE(bf::any_of(access::none, access::none));
|
||||||
STATIC_CHECK_FALSE(bf::any_of(access::none, access::read));
|
STATIC_CHECK_FALSE(bf::any_of(access::none, access::read));
|
||||||
STATIC_CHECK_FALSE(bf::any_of(access::none, access::write));
|
STATIC_CHECK_FALSE(bf::any_of(access::none, access::write));
|
||||||
STATIC_CHECK_FALSE(bf::any_of(access::none, access::read_write));
|
STATIC_CHECK_FALSE(bf::any_of(access::none, access::read_write));
|
||||||
|
|
||||||
STATIC_CHECK(bf::any_of(access::read, access::none));
|
STATIC_CHECK_FALSE(bf::any_of(access::read, access::none));
|
||||||
STATIC_CHECK(bf::any_of(access::read, access::read));
|
STATIC_CHECK(bf::any_of(access::read, access::read));
|
||||||
STATIC_CHECK_FALSE(bf::any_of(access::read, access::write));
|
STATIC_CHECK_FALSE(bf::any_of(access::read, access::write));
|
||||||
STATIC_CHECK(bf::any_of(access::read, access::read_write));
|
STATIC_CHECK(bf::any_of(access::read, access::read_write));
|
||||||
|
|
||||||
STATIC_CHECK(bf::any_of(access::write, access::none));
|
STATIC_CHECK_FALSE(bf::any_of(access::write, access::none));
|
||||||
STATIC_CHECK_FALSE(bf::any_of(access::write, access::read));
|
STATIC_CHECK_FALSE(bf::any_of(access::write, access::read));
|
||||||
STATIC_CHECK(bf::any_of(access::write, access::write));
|
STATIC_CHECK(bf::any_of(access::write, access::write));
|
||||||
STATIC_CHECK(bf::any_of(access::write, access::read_write));
|
STATIC_CHECK(bf::any_of(access::write, access::read_write));
|
||||||
|
|
||||||
STATIC_CHECK(bf::any_of(access::read_write, access::none));
|
STATIC_CHECK_FALSE(bf::any_of(access::read_write, access::none));
|
||||||
STATIC_CHECK(bf::any_of(access::read_write, access::read));
|
STATIC_CHECK(bf::any_of(access::read_write, access::read));
|
||||||
STATIC_CHECK(bf::any_of(access::read_write, access::write));
|
STATIC_CHECK(bf::any_of(access::read_write, access::write));
|
||||||
STATIC_CHECK(bf::any_of(access::read_write, access::read_write));
|
STATIC_CHECK(bf::any_of(access::read_write, access::read_write));
|
||||||
}
|
}
|
||||||
|
|
||||||
SUBCASE("none_of") {
|
SUBCASE("none_of") {
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::none, access::none));
|
STATIC_CHECK(bf::none_of(access::none, access::none));
|
||||||
STATIC_CHECK(bf::none_of(access::none, access::read));
|
STATIC_CHECK(bf::none_of(access::none, access::read));
|
||||||
STATIC_CHECK(bf::none_of(access::none, access::write));
|
STATIC_CHECK(bf::none_of(access::none, access::write));
|
||||||
STATIC_CHECK(bf::none_of(access::none, access::read_write));
|
STATIC_CHECK(bf::none_of(access::none, access::read_write));
|
||||||
|
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::read, access::none));
|
STATIC_CHECK(bf::none_of(access::read, access::none));
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::read, access::read));
|
STATIC_CHECK_FALSE(bf::none_of(access::read, access::read));
|
||||||
STATIC_CHECK(bf::none_of(access::read, access::write));
|
STATIC_CHECK(bf::none_of(access::read, access::write));
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::read, access::read_write));
|
STATIC_CHECK_FALSE(bf::none_of(access::read, access::read_write));
|
||||||
|
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::write, access::none));
|
STATIC_CHECK(bf::none_of(access::write, access::none));
|
||||||
STATIC_CHECK(bf::none_of(access::write, access::read));
|
STATIC_CHECK(bf::none_of(access::write, access::read));
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::write, access::write));
|
STATIC_CHECK_FALSE(bf::none_of(access::write, access::write));
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::write, access::read_write));
|
STATIC_CHECK_FALSE(bf::none_of(access::write, access::read_write));
|
||||||
|
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::none));
|
STATIC_CHECK(bf::none_of(access::read_write, access::none));
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::read));
|
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::read));
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::write));
|
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::write));
|
||||||
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::read_write));
|
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::read_write));
|
||||||
|
|||||||
Reference in New Issue
Block a user