Provides low- and high-level debug methods for ALib Boxing .
This type is not constructible, as all method are static.
To shorten custom type names, custom namespaces might be added to static vector RemovableNamespaces prior to invoking a method.
- Note
- While some of the methods are written with a non-capital letter (which usually indicates that they are
protected
or private
), those are still declared public
. These methods are "inner" methods used by the similar named capitalized methods. Their use is recommended, when writing custom "composite" debug-functions, as the various output parameters might be reused with subsequent invocations.
- Availability
- This struct is only available if compilation symbol ALIB_DEBUG_BOXING is set.
- The following methods are available independent from the ALib Distribution .
- The following methods become available if module ALib Strings is included in the ALib Distribution :
- All other methods become available if module ALib BaseCamp is included in the ALib Distribution .
- See also
- Chapter 12.7 Debug Helpers of the Programmer's Manual of module ALib Boxing .
Definition at line 133 of file dbgboxing.hpp.
|
static ALIB_API AString | DumpAll () |
|
static ALIB_API void | DumpCustomFunctionHashMapMetrics (AString &target, bool detailedBucketList) |
|
static ALIB_API void | dumpFunctions (const std::vector< std::pair< const std::type_info *, uinteger > > &input, AString &output, const String &headline, const String &indent, detail::DbgStringTable< uinteger > &tmpStrings) |
|
static ALIB_API alib::AString | DumpFunctions (const std::vector< std::pair< const std::type_info *, uinteger > > &input, const String &headline=EmptyString(), const String &indent=EmptyString()) |
|
static ALIB_API void | dumpVTables (AString &target, detail::DbgStringTable< const detail::VTable * > &vtableNames, bool staticVtables, bool includeFunctions) |
|
static ALIB_API AString | DumpVTables (bool staticVtables, bool includeFunctions=false) |
|
static ALIB_API void | getFunctionTypes (const detail::FunctionTable &input, std::vector< std::pair< const std::type_info *, uinteger > > &output) |
|
static ALIB_API std::vector< std::pair< const std::type_info *, uinteger > > | GetKnownFunctionTypes () |
|
static ALIB_API std::vector< detail::VTable * > | GetKnownVTables () |
|
static std::vector< std::pair< const std::type_info *, uinteger > > | GetSpecificFunctionTypes (const Box &box) |
|
static std::vector< std::pair< const std::type_info *, uinteger > > | GetSpecificFunctionTypes (const detail::VTable *vtable) |
|
static ALIB_API AString & | removeNamespaces (AString &string, integer startIndex) |
|
static ALIB_API void | typeInfo (AString &target, const detail::VTable *vtable, const String &indent, bool srcIsPointer, bool isValueTypeCustomized, bool isPointerTypeCustomized, bool fitsToPlaceholder, bool copyConstructible, bool triviallyDestructible, bool isUnboxable) |
|
template<typename TBoxable > |
static AString | TypeInfo (const Box &box, const String &headline=A_CHAR("Boxing Information For Boxable Type: "), const String &indent=A_CHAR(" ")) |
|
template<typename TBoxable > |
static AString | TypeInfo (const String &headline=A_CHAR("Boxing Information For Boxable Type: "), const String &indent=A_CHAR(" ")) |
|
static AString | TypeName (const Box &box) |
|
static AString | TypeName (const detail::VTable *vtable) |
|
static ALIB_API void | typeName (const detail::VTable *vtable, AString &result) |
|
std::vector< std::pair< const std::type_info *, uinteger > > GetKnownFunctionTypes |
( |
| ) |
|
|
static |
Returns a vector of std::type_info
objects, representing all function types that either a default or a type specific implementation has been registered for.
A second value in the vector provides the number of invocations of a default implementation. If such is not available, this number is set to std::numeric_limits<uinteger>::max()
.
The list includes the built-in function types.
- See also
- The result can be conveniently passed to DumpFunctions.
- Returns
- A vector of pairs of type information structs and usage numbers.
Definition at line 206 of file vtable.cpp.
template<typename TBoxable >
Returns human readable information about the type TBoxable in respect to how boxing of objects of this type is performed.
The implementation of this method creates a default value of TBoxable , boxes this and returns the result of TypeInfo(const Box&,const String&,const String&). Hence, for types that are not default constructible, inner function TypeInfo has to be used with an accordingly boxed "sample" of type TBoxable
- Note
- Does not work for type
void*
, which is not customizable anyhow (always boxed as void*
).
- Availability
- This method is included only if module ALib Strings is included in the ALib Distribution .
- Template Parameters
-
TBoxable | The boxable type to investigate in. |
- Parameters
-
headline | The headline to write. |
indent | Spaces to write prior to each entry. |
- Returns
- A string containing the requested information.
Definition at line 303 of file dbgboxing.hpp.