ALib C++ Library
Library Version: 2412 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
EnumRecordHook< TEnum > Struct Template Reference

Description:

template<typename TEnum>
struct alib::enums::detail::EnumRecordHook< TEnum >

This is the internal singleton that provides a link to the first ALib Enum Record. The class inherit's Singleton and has a private default constructor, what makes this type a strict singleton.

Because enum record types are ensured to be trivially destructible types, no destructor is given.

Template Parameters
TEnumThe enumeration type associated with enum records.

Definition at line 57 of file enumrecords.inl.

Inheritance diagram for EnumRecordHook< TEnum >:
[legend]
Collaboration diagram for EnumRecordHook< TEnum >:
[legend]

Inner Type Index:

struct  Node
 A node of the forward list that contains the custom record data. More...
 

Public Type Index:

using TIntegral = typename std::underlying_type<TEnum>::type
 The enum's underlying integer type.
 
using TRecord = typename T_EnumRecords<TEnum>::Type
 The enum's associated record type.
 

Public Field Index:

Nodefirst
 The hook to the first record defined.
 

Public Method Index:

Node ** getPointerToLast ()
 
- Public Method Index: inherited from Singleton< TDerivedClass >
virtual ~Singleton ()
 Virtual destructor.
 

Private Method Index:

 EnumRecordHook ()
 

Additional Inherited Members

- Public Static Method Index: inherited from Singleton< TDerivedClass >
static TDerivedClass & GetSingleton ()
 
- Protected Static Field Index: inherited from Singleton< TDerivedClass >
static TDerivedClass * singleton = nullptr
 A pointer to the one and only singleton.
 

Type Definition Details:

◆ TIntegral

template<typename TEnum >
using TIntegral = typename std::underlying_type<TEnum>::type

The enum's underlying integer type.

Definition at line 64 of file enumrecords.inl.

◆ TRecord

template<typename TEnum >
using TRecord = typename T_EnumRecords<TEnum>::Type

The enum's associated record type.

Definition at line 67 of file enumrecords.inl.

Field Details:

◆ first

template<typename TEnum >
Node* first

The hook to the first record defined.

Definition at line 100 of file enumrecords.inl.

Constructor(s) / Destructor Details:

◆ EnumRecordHook()

template<typename TEnum >
EnumRecordHook ( )
inlineprivate

Private default constructor, what makes this type a strict singleton.

Note
As enum record types are trivially destructible types, no destructor is given.

Definition at line 120 of file enumrecords.inl.

Method Details:

◆ getPointerToLast()

template<typename TEnum >
Node ** getPointerToLast ( )
inline

Helper methods that returns the address of field EnumRecordHook::Node::next the last element contained in the list. If no elements have been initialized, yet, the address of field first is returned.

Returns
A pointer to the pointer of the last element or this hook.

Definition at line 107 of file enumrecords.inl.


The documentation for this struct was generated from the following file: