5 #ifndef LODESTAR_TYPENAME_HPP
6 #define LODESTAR_TYPENAME_HPP
21 typedef typename std::remove_reference<T>::type TR;
22 std::unique_ptr<char, void(*)(
void*)> own
25 abi::__cxa_demangle(
typeid(TR).name(),
nullptr,
32 std::string r = own !=
nullptr ? own.get() :
typeid(TR).name();
33 if (std::is_const<TR>::value)
35 if (std::is_volatile<TR>::value)
37 if (std::is_lvalue_reference<T>::value)
39 else if (std::is_rvalue_reference<T>::value)
44 #endif //LODESTAR_TYPENAME_HPP