8#if !defined(ALIB_C20_MODULES) || ((ALIB_C20_MODULES != 0) && (ALIB_C20_MODULES != 1))
9# error "Symbol ALIB_C20_MODULES has to be given to the compiler as either 0 or 1"
16#if !ALIB_MONOMEM || !ALIB_CONTAINERS
17# include <unordered_map>
24# if ALIB_MONOMEM && ALIB_CONTAINERS
32# if ALIB_MONOMEM && ALIB_CONTAINERS
41#if ALIB_MONOMEM && ALIB_CONTAINERS
64 #if ALIB_MONOMEM && ALIB_CONTAINERS
65 ENUM_RECORD_MAP.EmplaceIfNotExistent(
EnumRecordKey(rtti, elementValue ), record );
67 ENUM_RECORD_MAP.try_emplace(
EnumRecordKey(rtti, elementValue ), record );
74#if ALIB_MONOMEM && ALIB_CONTAINERS
75 auto it= ENUM_RECORD_MAP.Find(
EnumRecordKey( rtti, elementValue ) );
77 auto it= ENUM_RECORD_MAP.find(
EnumRecordKey( rtti, elementValue ) );
79 if ( it != ENUM_RECORD_MAP.end() )
85#if ALIB_MONOMEM && ALIB_CONTAINERS
87 EnumRecordKey,
const void*,
96 return ENUM_RECORD_MAP;
HashMap< MonoAllocator, EnumRecordKey, const void *, EnumRecordKey::Hash, EnumRecordKey::EqualTo > ENUM_RECORD_MAP
Global directory to find enum records.
Details of namespace alib::enumrecords.
HashMap< MonoAllocator, EnumRecordKey, const void *, EnumRecordKey::Hash, EnumRecordKey::EqualTo > & getInternalRecordMap()
const void * getEnumRecord(const std::type_info &rtti, integer elementValue)
void setEnumRecord(const std::type_info &rtti, integer elementValue, const void *record)
ALIB_DLL TMonoAllocator< lang::HeapAllocator > GLOBAL_ALLOCATOR
lang::integer integer
Type alias in namespace alib.
containers::HashMap< TAllocator, TKey, TMapped, THash, TEqual, THashCaching, TRecycling > HashMap
Type alias in namespace alib.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
String EnumElementName
The name of the enum element.
int MinimumRecognitionLength
EnumRecordPrototype() noexcept=default
ALIB_DLL void Parse() noexcept
static ALIB_DLL void Get(String &result, bool isLastField=false)
Compare functor for this key type.
Hash functor for this key type.