32 template <
typename type>
33 struct get_display_name_size
37 static constexpr
auto get_size()
41 auto name_ptr = __PRETTY_FUNCTION__;
44 while (*name_ptr++ !=
'=')
47 for (; *name_ptr ==
' '; ++name_ptr)
51 char const * end_name_ptr = name_ptr;
54 for (; ; ++end_name_ptr)
56 switch (*end_name_ptr)
64 return size_t(end_name_ptr - name_ptr);
73 static constexpr
size_t value = get_size();
79 template <
typename type>
80 constexpr
size_t get_display_name_size_v = get_display_name_size<type>::value;
95 template <
typename type>
96 struct get_display_name
100 static constexpr
auto get_display_name_fn()
103 constexpr
auto name_length = get_display_name_size_v<type>;
106 auto name_ptr = __PRETTY_FUNCTION__;
109 while (*name_ptr++ !=
'=')
112 for (; *name_ptr ==
' '; ++name_ptr)
115 return small_string<name_length>{name_ptr, name_ptr + name_length};
119 static constexpr small_string value = get_display_name_fn();
125 template <
typename type>
126 constexpr small_string get_display_name_v = get_display_name<type>::value;
Definition: aligned_sequence_concept.hpp:35
A constexpr string implementation to manipulate string literals at compile time.