From f9acaa8879c38a40c80ba6c31a49d079e5e86872 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Tue, 29 Apr 2025 11:35:10 +0200 Subject: [PATCH] fix: text stripping in `type_name` fixed --- src/core/include/mp-units/ext/type_name.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/include/mp-units/ext/type_name.h b/src/core/include/mp-units/ext/type_name.h index 7f478fc8..bf6274f0 100644 --- a/src/core/include/mp-units/ext/type_name.h +++ b/src/core/include/mp-units/ext/type_name.h @@ -6,6 +6,7 @@ #pragma once #ifndef MP_UNITS_IN_MODULE_INTERFACE +#include #ifdef MP_UNITS_IMPORT_STD import std; #else @@ -22,17 +23,19 @@ template std::string_view name, prefix, suffix; #ifdef __clang__ name = __PRETTY_FUNCTION__; - prefix = "auto type_name() [T = "; + prefix = "std::string_view mp_units::detail::type_name() [T = "; suffix = "]"; #elif defined(__GNUC__) name = __PRETTY_FUNCTION__; - prefix = "constexpr auto type_name() [with T = "; + prefix = "consteval std::string_view mp_units::detail::type_name() [with T = "; suffix = "]"; #elif defined(_MSC_VER) name = __FUNCSIG__; - prefix = "auto __cdecl type_name<"; + prefix = "class std::basic_string_view > __cdecl mp_units::detail::type_name<"; suffix = ">(void)"; #endif + MP_UNITS_ASSERT_DEBUG(name.starts_with(prefix)); + MP_UNITS_ASSERT_DEBUG(name.ends_with(suffix)); name.remove_prefix(prefix.size()); name.remove_suffix(suffix.size()); return name;