fix any_of/none_of

This commit is contained in:
BlackMATov
2022-03-28 21:41:00 +07:00
parent 2917a832db
commit deb76ce5a5
3 changed files with 11 additions and 12 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
build/*
.clangd/*
.vscode/*
CMakeLists.txt.user

View File

@@ -232,8 +232,7 @@ namespace enum_hpp::bitflags
template < typename Enum >
constexpr bool any_of(bitflags<Enum> flags, bitflags<Enum> mask) noexcept {
return mask.as_raw() == 0
|| (flags.as_raw() & mask.as_raw()) != 0;
return 0 != (flags.as_raw() & mask.as_raw());
}
//
@@ -258,8 +257,7 @@ namespace enum_hpp::bitflags
template < typename Enum >
constexpr bool none_of(bitflags<Enum> flags, bitflags<Enum> mask) noexcept {
return mask.as_raw() != 0
&& (flags.as_raw() & mask.as_raw()) == 0;
return 0 == (flags.as_raw() & mask.as_raw());
}
//

View File

@@ -337,44 +337,44 @@ TEST_CASE("enum_bitflags") {
}
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::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_FALSE(bf::any_of(access::read, access::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(bf::any_of(access::write, access::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::write));
STATIC_CHECK(bf::any_of(access::read_write, access::read_write));
}
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::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(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::write, access::none));
STATIC_CHECK(bf::none_of(access::write, access::none));
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::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::write));
STATIC_CHECK_FALSE(bf::none_of(access::read_write, access::read_write));