type_info: full_type_name returns a non-null name in all cases

This commit is contained in:
skypjack
2025-04-14 15:32:14 +02:00
parent 57d604bcb2
commit 11c3ea2fdb

View File

@@ -22,17 +22,17 @@ struct ENTT_API type_index final {
};
template<typename Type>
[[nodiscard]] constexpr auto full_type_name() noexcept {
[[nodiscard]] constexpr const char *full_type_name() noexcept {
#if defined ENTT_PRETTY_FUNCTION
return std::string_view{static_cast<const char *>(ENTT_PRETTY_FUNCTION)};
return static_cast<const char *>(ENTT_PRETTY_FUNCTION);
#else
return std::string_view{};
return "";
#endif
}
template<typename Type>
[[nodiscard]] constexpr auto stripped_type_name() noexcept {
const std::string_view full_name = full_type_name<Type>();
const std::string_view full_name{full_type_name<Type>()};
auto first = full_name.find_first_not_of(' ', full_name.find_first_of(ENTT_PRETTY_FUNCTION_PREFIX) + 1);
auto value = full_name.substr(first, full_name.find_last_of(ENTT_PRETTY_FUNCTION_SUFFIX) - first);
return value;