ALib C++ Library
Library Version: 2412 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
alib::boxing::detail Namespace Reference

Description:

This namespace implements internals of namespace alib::boxing.

Type Index:

struct  DbgStringTable
 
struct  FunctionTable
 
struct  StructArray
 
struct  T_VTableFactory
 
struct  TArrayOf
 
struct  TDefaultBoxing
 
struct  TNotBoxable
 
struct  TPlain
 
union  UnionFloatingPoints
 
union  UnionIntegrals
 
union  UnionPointers
 
struct  VTable
 
class  VTableTT
 

Function Index:

void bootStrapCFM ()
 Bootstrap helper method.
 
ALIB_API void DbgCheckIsInitialized ()
 
ALIB_API void DbgCheckRegistration (detail::VTable *vtable, bool increaseUsageCounter)
 
void DbgRegisterVTable (detail::VTable *vtable, detail::VTable::DbgFactoryType productionType)
 

Variable Index:

FunctionTable DEFAULT_FUNCTIONS
 The default box-functions set.
 

Function Details:

◆ DbgCheckIsInitialized()

void DbgCheckIsInitialized ( )

Checks if ALib Boxing was correctly initialized. This is done with the creation of dynamic vtables, to detect global or static box objects which are initialized with data that is mapped to a type that no static vtable is defined for.

Available and used only in debug-compilations.

See also
Manual chapter 12.4 Global And Static Box Instances And Their Initialization.

Definition at line 1103 of file boxing.cpp.

◆ DbgCheckRegistration()

void DbgCheckRegistration ( detail::VTable * vtable,
bool increaseUsageCounter )

Checks for doubly-defined vtables, as well as for unregistered static vtables.

Available and used only in debug-compilations.

Parameters
vtableThe vtable to check.
increaseUsageCounterDenotes if this is a use of the vtable or just a check.

Definition at line 1112 of file boxing.cpp.

Here is the call graph for this function:

◆ DbgRegisterVTable()

ALIB_API void DbgRegisterVTable ( detail::VTable * vtable,
detail::VTable::DbgFactoryType productionType )

Registers a virtual table for debug purposes. This function is invoked internally, when a dynamic vtable is created and when a static vtable is registered.

Statically created vtables have to be registered during bootstrap in debug-compilations. For this, macro ALIB_BOXING_BOOTSTRAP_VTABLE_DBG_REGISTER is available, which is empty in release compilations.

See also
Macros ALIB_BOXING_VTABLE_DECLARE and Programmer's Manual chapter 12.2 Optimizations With Static VTables.
Parameters
vtableThe vtable to register.
productionTypeDenotes whether the vtable is a static constexpr object or dynamically created from template type VTableTT.

Definition at line 79 of file dbgboxing.cpp.

Here is the call graph for this function:

Variable Details:

◆ DEFAULT_FUNCTIONS

ALIB_API FunctionTable DEFAULT_FUNCTIONS

The default box-functions set.

Definition at line 112 of file vtable.cpp.