42#ifndef _TEUCHOS_TYPE_NAME_TRAITS_HPP_
43#define _TEUCHOS_TYPE_NAME_TRAITS_HPP_
61#if defined(__IBMCPP__) && ( __IBMCPP__ < 900 || __IBMCPP__ == 1210 )
62# define TEUCHOS_TYPE_NAME_TRAITS_OLD_IBM
93#ifndef TEUCHOS_TYPE_NAME_TRAITS_OLD_IBM
118#ifndef TEUCHOS_TYPE_NAME_TRAITS_OLD_IBM
145#define TEUCHOS_TYPE_NAME_TRAITS_BUILTIN_TYPE_SPECIALIZATION(TYPE) \
147class TypeNameTraits<TYPE> { \
149 static std::string name() { return (#TYPE); } \
150 static std::string concreteName(const TYPE&) { return name(); } \
166#ifdef HAVE_TEUCHOSCORE_QUADMATH
170#ifdef HAVE_TEUCHOS_LONG_DOUBLE
186 static std::string
name() {
return "string"; }
195 static std::string
name() {
return "void*"; }
208 static std::string
name() {
return "void"; }
213#ifdef HAVE_TEUCHOS_COMPLEX
219 static std::string name()
220 {
return "complex<"+TypeNameTraits<T>::name()+
">"; }
221 static std::string concreteName(
const std::complex<T>&)
#define TEUCHOSCORE_LIB_DLL_EXPORT
#define TEUCHOS_TYPE_NAME_TRAITS_BUILTIN_TYPE_SPECIALIZATION(TYPE)
UnConst< T >::Result NonConstType
static std::string name()
static std::string concreteName(T_ptr)
static std::string concreteName(const std::string &)
static std::string name()
static std::string concreteName(const std::string &)
static std::string name()
static std::string concreteName(const std::string &)
static std::string name()
Default traits class that just returns typeid(T).name().
static std::string concreteName(const T &t)
static std::string name()
std::string typeName(const T &t)
Template function for returning the concrete type name of a passed-in object.
std::string concreteTypeName(const T &t)
Template function for returning the type name of the actual concrete name of a passed-in object.
TEUCHOSCORE_LIB_DLL_EXPORT std::string demangleName(const std::string &mangledName)
Demangle a C++ name if valid.