mirror of
https://github.com/Neargye/magic_enum.git
synced 2026-01-09 23:34:23 +00:00
fix enum_type_name in namespace
This commit is contained in:
parent
4a862c932e
commit
43070070e6
2 changed files with 43 additions and 0 deletions
|
|
@ -438,6 +438,17 @@ constexpr auto n() noexcept {
|
|||
#else
|
||||
auto name = str_view{};
|
||||
#endif
|
||||
std::size_t p = 0;
|
||||
for (std::size_t i = name.size_; i > 0; --i) {
|
||||
if (name.str_[i] == ':') {
|
||||
p = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (p > 0) {
|
||||
name.size_ -= p;
|
||||
name.str_ += p;
|
||||
}
|
||||
return name;
|
||||
} else {
|
||||
return str_view{}; // Unsupported compiler or Invalid customize.
|
||||
|
|
|
|||
|
|
@ -844,6 +844,38 @@ TEST_CASE("enum_type_name") {
|
|||
REQUIRE(enum_type_name<const Numbers>() == "Numbers");
|
||||
REQUIRE(enum_type_name<const Directions&>() == "Directions");
|
||||
REQUIRE(enum_type_name<number>() == "number");
|
||||
|
||||
REQUIRE(enum_type_name<lt1>() == "lt1");
|
||||
REQUIRE(enum_type_name<lt2>() == "lt2");
|
||||
REQUIRE(enum_type_name<lt3>() == "lt3");
|
||||
REQUIRE(enum_type_name<lt4>() == "lt4");
|
||||
REQUIRE(enum_type_name<foo1::lt5>() == "lt5");
|
||||
REQUIRE(enum_type_name<foo2::lt6>() == "lt6");
|
||||
REQUIRE(enum_type_name<decltype(foo2::s6)>() == "lt6");
|
||||
|
||||
REQUIRE(enum_type_name<boo1::lt1>() == "lt1");
|
||||
REQUIRE(enum_type_name<boo1::lt2>() == "lt2");
|
||||
REQUIRE(enum_type_name<boo1::lt3>() == "lt3");
|
||||
REQUIRE(enum_type_name<boo1::lt4>() == "lt4");
|
||||
REQUIRE(enum_type_name<boo1::foo1::lt5>() == "lt5");
|
||||
REQUIRE(enum_type_name<boo1::foo2::lt6>() == "lt6");
|
||||
REQUIRE(enum_type_name<decltype(boo1::foo2::s6)>() == "lt6");
|
||||
|
||||
REQUIRE(enum_type_name<boo2::boo3::lt1>() == "lt1");
|
||||
REQUIRE(enum_type_name<boo2::boo3::lt2>() == "lt2");
|
||||
REQUIRE(enum_type_name<boo2::boo3::lt3>() == "lt3");
|
||||
REQUIRE(enum_type_name<boo2::boo3::lt4>() == "lt4");
|
||||
REQUIRE(enum_type_name<boo2::boo3::foo1::lt5>() == "lt5");
|
||||
REQUIRE(enum_type_name<boo2::boo3::foo2::lt6>() == "lt6");
|
||||
REQUIRE(enum_type_name<decltype(boo2::boo3::foo2::s6)>() == "lt6");
|
||||
|
||||
REQUIRE(enum_type_name<a_lt1>() == "a_lt1");
|
||||
REQUIRE(enum_type_name<a_lt2>() == "a_lt2");
|
||||
REQUIRE(enum_type_name<a_lt3>() == "a_lt3");
|
||||
REQUIRE(enum_type_name<a_lt4>() == "a_lt4");
|
||||
REQUIRE(enum_type_name<a_foo1::a_lt5>() == "a_lt5");
|
||||
REQUIRE(enum_type_name<a_foo2::a_lt6>() == "a_lt6");
|
||||
REQUIRE(enum_type_name<decltype(a_foo2::s6)>() == "a_lt6");
|
||||
}
|
||||
|
||||
#if defined(MAGIC_ENUM_SUPPORTED_ALIASES)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue