ALib C++ Library
Library Version:
1912 R0
Documentation generated by
src
alib
lib
fs_debug
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
15
ALIB_ASSERT_FILESET
(DEBUG)
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
**********************************************************************************************/
31
class
DbgTypeDemangler
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
49
~DbgTypeDemangler
();
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