mirror of
https://github.com/Neargye/magic_enum.git
synced 2026-01-10 23:44:29 +00:00
checking that the enum is valid (not empty and not forward declaration) (#323)
This commit is contained in:
parent
41f674b061
commit
e09f25780a
8 changed files with 74 additions and 20 deletions
|
|
@ -23,9 +23,8 @@
|
|||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#undef MAGIC_ENUM_RANGE_MIN
|
||||
#define MAGIC_ENUM_NO_CHECK_VALID_ENUM_TYPE
|
||||
#define MAGIC_ENUM_RANGE_MIN -120
|
||||
#undef MAGIC_ENUM_RANGE_MAX
|
||||
#define MAGIC_ENUM_RANGE_MAX 120
|
||||
#include <magic_enum.hpp>
|
||||
#include <magic_enum_fuse.hpp>
|
||||
|
|
@ -1247,3 +1246,31 @@ TEST_CASE("enum_prev_value_circular") {
|
|||
REQUIRE(enum_prev_value_circular(Color::RED, -3) == Color::RED);
|
||||
REQUIRE(enum_prev_value_circular(Color::RED, -4) == Color::GREEN);
|
||||
}
|
||||
|
||||
TEST_CASE("valid_enum") {
|
||||
//enum Forward1;
|
||||
enum Forward2 : uint32_t;
|
||||
enum class Forward3;
|
||||
enum class Forward4 : uint32_t;
|
||||
enum Empty1 {};
|
||||
enum Empty2 : uint32_t {};
|
||||
enum class Empty3 {};
|
||||
enum class Empty4 : uint32_t {};
|
||||
|
||||
//REQUIRE(magic_enum::detail::is_valid_enum_v<Forward1, as_flags<true>>);
|
||||
//REQUIRE(magic_enum::detail::is_valid_enum_v<Forward1, as_flags<false>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Forward2, as_flags<true>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Forward2, as_flags<false>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Forward3, as_flags<true>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Forward3, as_flags<false>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Forward4, as_flags<true>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Forward4, as_flags<false>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty1, as_flags<true>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty1, as_flags<false>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty2, as_flags<true>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty2, as_flags<false>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty3, as_flags<true>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty3, as_flags<false>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty4, as_flags<true>>);
|
||||
REQUIRE(magic_enum::detail::is_valid_enum_v<Empty4, as_flags<false>>);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue