Main Page   Reference Manual   Namespace List   Compound List   Namespace Members   Compound Members   File Members  

Modules | Classes | Functions
Getting Type Information Of Types And Symbols
Collaboration diagram for Getting Type Information Of Types And Symbols:

Modules

 demangle_type() and demangle_symbol()
 

Classes

class  libcwd::type_info_ct
 Class that holds type information for debugging purposes.  Returned by type_info_of(). More...
 

Functions

template<typename T >
type_info_ct const & libcwd::type_info_of ()
 Get type information of a given class or type. More...
 
template<typename T >
type_info_ct const & libcwd::type_info_of (T const &)
 Get type information of a given class instance. More...
 

Detailed Description

Function Documentation

◆ type_info_of() [1/2]

template<typename T >
type_info_ct const& libcwd::type_info_of ( )
inline

Get type information of a given class or type.

This specialization allows to specify a type without an object (for example by calling: type_info_of<int const>()).

As it doesn't ignore top-level qualifiers it is best suited to print for example template parameters.  For example,

template<typename T>
void Foo::func(T const&)
{
Dout(dc::notice, "Calling Foo::func(" << type_info_of<T const&>().demangled_name() << ')');
}
#define Dout(cntrl, data)
Macro for writing debug output.
Definition: debug.h:154
channel_ct notice
Definition: debug.cc:460

◆ type_info_of() [2/2]

template<typename T >
type_info_ct const& libcwd::type_info_of ( T const &  )
inline

Get type information of a given class instance.

This template is used by passing an object to it, top level CV-qualifiers (and a possible reference) are ignored in the same way as does typeid() (see 5.2.8 Type identification of the ISO C++ standard).

Copyright © 2001 - 2004 Carlo Wood.  All rights reserved.