49 typedef typename std::remove_reference<T>::type TR;
50 std::unique_ptr<char, void (*)(
void*)> own(
52 abi::__cxa_demangle(
typeid(TR).name(),
nullptr,
nullptr,
nullptr),
57 std::string result = own !=
nullptr ? own.get() :
typeid(TR).name();
58 if (std::is_const<TR>::value) result +=
" const";
59 if (std::is_volatile<TR>::value) result +=
" volatile";
60 if (std::is_lvalue_reference<T>::value)
62 else if (std::is_rvalue_reference<T>::value)