diff --git a/test/test.cpp b/test/test.cpp index a3db5fa..9629e88 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -43,10 +43,15 @@ enum number : unsigned long { two = 200, three = 300, four = 400, + +#if defined(_MSC_VER) && _MSC_VER >= 1920 + // Aliases won't work on vs2017. + _1 = one, _2 = two, _3 = three, _4 = four +#endif }; namespace magic_enum { @@ -589,6 +594,8 @@ TEST_CASE("enum_traits") { REQUIRE(enum_traits::is_sparse); } +#if defined(_MSC_VER) && _MSC_VER >= 1920 +// Aliases won't work on vs2017. TEST_CASE("aliases") { REQUIRE(enum_count() == 3); @@ -601,7 +608,13 @@ TEST_CASE("aliases") { REQUIRE(enum_integer(number::two) == enum_integer(number::_2)); REQUIRE(enum_integer(number::three) == enum_integer(number::_3)); REQUIRE(enum_integer(number::four) == enum_integer(number::_4)); + + REQUIRE_FALSE(enum_cast("_1").has_value()); + REQUIRE_FALSE(enum_cast("_2").has_value()); + REQUIRE_FALSE(enum_cast("_3").has_value()); + REQUIRE_FALSE(enum_cast("_4").has_value()); } +#endif TEST_CASE("extrema") { enum class BadColor : std::uint64_t {