1 #ifndef DEMANGLE_UTIL_H 2 #define DEMANGLE_UTIL_H 6 #if defined(__clang__) && defined(__has_include) 7 #if __has_include(<cxxabi.h>) 10 #elif defined(__GLIBCXX__) || defined(__GLIBCPP__) 14 #if defined(HAS_CXXABI_H) 39 char const*
get()
const noexcept
48 #if defined(HAS_CXXABI_H) 54 return abi::__cxa_demangle(name, NULL, &size, &status);
59 std::free(const_cast<char*>(name));
79 inline std::string
demangle(
const std::type_info* info)
85 if (info == &
typeid(std::string))
90 char const*
const p = demangled_name.
get();
101 inline std::string
demangle(
const std::type_info& info)
110 #endif // DEMANGLE_UTIL_H char const * get() const noexcept
scoped_demangled_name & operator=(scoped_demangled_name const &)=delete
scoped_demangled_name(char const *name) noexcept
std::string demangle(char const *name)
char const * demangle_alloc(char const *name) noexcept
~scoped_demangled_name() noexcept
void demangle_free(char const *name) noexcept