8#ifndef HPP_ALIB_ENUMS_DETAIL_ENUMRECORDMAP
9#define HPP_ALIB_ENUMS_DETAIL_ENUMRECORDMAP 1
17# include <unordered_map>
21namespace alib {
namespace enums {
namespace detail {
31 const std::type_info&
RTTI;
52 size_t result= key.
RTTI.hash_code()
54 #if ALIB_SIZEOF_INTEGER == 4
55 result^= (result >> 17);
57 result^= (result >> 33);
80#if ALIB_MONOMEM && ALIB_CONTAINERS
115 EnumRecordKey,
const void*,
119std::unordered_map< EnumRecordKey,
const void*,
HashMap< MonoAllocator, EnumRecordKey, const void *, EnumRecordKey::Hash, EnumRecordKey::EqualTo > & getInternalRecordMap()
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
lang::integer integer
Type alias in namespace alib.
Compare functor for this key type.
bool operator()(const EnumRecordKey &lhs, const EnumRecordKey &rhs) const
Hash functor for this key type.
std::size_t operator()(const EnumRecordKey &key) const
EnumRecordKey(const std::type_info &rtti, integer element)
const std::type_info & RTTI
Run-time type information on the enumeration type.
integer Element
Integral value of the enumeration element.