28constexpr auto TypeName = []<
class _Obj = Object>() {
31 constexpr std::string_view fully_name = __FUNCSIG__;
33 constexpr std::string_view fully_name = __PRETTY_FUNCTION__;
36 constexpr size_t begin =
sizeof(
37 "auto __cdecl xcmath::(anonymous "
38 "class)::operator()(void) const [_Obj = ") -
40 constexpr size_t end = fully_name.rfind(
"]");
41#elif defined(__GNUC__)
42 constexpr size_t begin =
sizeof(
"<lambda()> [with _Obj =");
43 constexpr size_t end = fully_name.rfind(
"]");
45 constexpr size_t begin = fully_name.find(
"<") + 1;
46 constexpr size_t end = fully_name.rfind(
">");
49 constexpr auto type_name_view = fully_name.substr(begin, end - begin);
50 return [&]<
size_t... index>(std::index_sequence<index...>) {
52 }((std::make_index_sequence<end - begin>{}));