ALib C++ Library
Library Version: 1912 R0
Documentation generated by doxygen
typedemangler.hpp
Go to the documentation of this file.
1 /** ************************************************************************************************
2  * \file
3  * This header file is part of file set \alibfs_debug of the \aliblong.
4  *
5  * \emoji :copyright: 2013-2019 A-Worx GmbH, Germany.
6  * Published under \ref mainpage_license "Boost Software License".
7  **************************************************************************************************/
8 #ifndef HPP_ALIB_FS_DEBUG_TYPEDEMANGLER
9 #define HPP_ALIB_FS_DEBUG_TYPEDEMANGLER 1
10 
11 #if !defined(HPP_ALIB_COMPILERS) && !defined(ALIB_DOX)
12 # include "alib/lib/compilers.hpp"
13 #endif
14 
16 
17 
18 #if !defined (_TYPEINFO) && !defined(_TYPEINFO_)
19  #include <typeinfo>
20 #endif
21 
22 
23 #if ALIB_DEBUG
24 
25 namespace aworx { namespace lib {
26 
27 /** ********************************************************************************************
28  * Retrieves human readable names from C++ run-time type information.<br>
29  * This class is available only with debug builds of \alib.
30  **********************************************************************************************/
32 {
33  protected:
34  /** The translated name name. */
35  const char* name;
36 
37  public:
38  /** ************************************************************************************
39  * Constructor
40  * @param typeInfo The information struct on the C++ type.
41  **************************************************************************************/
42  ALIB_API
43  DbgTypeDemangler( const std::type_info& typeInfo );
44 
45  /** ************************************************************************************
46  * Destructor
47  **************************************************************************************/
48  ALIB_API
50 
51  /** ************************************************************************************
52  * Returns the demangled, human readable name of the type which was provided in the
53  * constructor.
54  * @return The demangled type name.
55  **************************************************************************************/
56  ALIB_API
57  const char* Get();
58 }; // class DbgTypeDemangler
59 
60 
61 }} // namespace [aworx::lib}
62 
63 #endif // ALIB_DEBUG
64 
65 #endif // HPP_ALIB_FS_DEBUG_TYPEDEMANGLER
aworx::lib::DbgTypeDemangler
Definition: typedemangler.hpp:31
ALIB_ASSERT_FILESET
#define ALIB_ASSERT_FILESET(filesetname)
Definition: modules.hpp:242
aworx::lib::DbgTypeDemangler::name
const char * name
Definition: typedemangler.hpp:35
compilers.hpp
aworx::lib::DbgTypeDemangler::Get
const ALIB_API char * Get()
Definition: typedemangler.cpp:53
aworx
Definition: alox/alox.hpp:40
ALIB_API
#define ALIB_API
Definition: compilers.hpp:128
aworx::lib::DbgTypeDemangler::~DbgTypeDemangler
ALIB_API ~DbgTypeDemangler()
Definition: typedemangler.cpp:47
aworx::lib::DbgTypeDemangler::DbgTypeDemangler
ALIB_API DbgTypeDemangler(const std::type_info &typeInfo)
Definition: typedemangler.cpp:40