Provided by:
librheolef-dev_5.93-2_i386 
NAME
typename_macro, pretty_typename_macro - type demangler and pretty
printer
DESCRIPTION
These preprocessor macro-definitions are usefull when dealing with
complex types as generated by imbricted template technics: they print
in clear a complex type at run-time. typeid_name_macro obtains a human
readable type in a std::tring form by calling the system typeid
function and then a demangler. When this type is very long,
pretty_name_macro prints also it in a multi-line form with a pretty
indentation.
EXAMPLE
typedef map <size_t, double, less<size_t>, heap_allocator<pair<size_t,double> > > map_type;
cout << typeid_name_macro (map_type);
IMPLEMENTATION
extern std::string typeid_name (const char* name, bool do_indent);
/// @brief get string from a type, with an optional pretty-printing for complex types
#define typename_macro(T) typeid_name(typeid(T).name(), false)
#define pretty_typename_macro(T) typeid_name(typeid(T).name(), true)
/// @brief get string type from a variable or expression
template <class T> std::string typename_of (T x) { return typename_macro(T); }
template <class T> std::string pretty_typename_of (T x) { return pretty_typename_macro(T); }