5#ifndef DUNE_CLASSNAME_HH 
    6#define DUNE_CLASSNAME_HH 
   19#if __has_include(<cxxabi.h>) && !DISABLE_CXA_DEMANGLE 
   20#define HAVE_CXA_DEMANGLE 1 
   28    inline std::string demangle(std::string name)
 
   32      std::unique_ptr<char, void(*)(
void*)>
 
   33        demangled(abi::__cxa_demangle(name.c_str(), 
nullptr, 
nullptr, &status),
 
   36        name = demangled.get();
 
   49    typedef typename std::remove_reference<T>::type TR;
 
   50    std::string 
className = Impl::demangle( 
typeid( TR ).name() );
 
   51    if (std::is_const<TR>::value)
 
   53    if (std::is_volatile<TR>::value)
 
   55    if (std::is_lvalue_reference<T>::value)
 
   57    else if (std::is_rvalue_reference<T>::value)
 
   69    typedef typename std::remove_reference<T>::type TR;
 
   70    std::string 
className = Impl::demangle( 
typeid(v).name() );
 
   71    if (std::is_const<TR>::value)
 
   73    if (std::is_volatile<TR>::value)
 
Dune namespace.
Definition: alignedallocator.hh:13
 
std::string className()
Provide the demangled class name of a type T as a string.
Definition: classname.hh:47