8#ifndef HPP_ALIB_ENUMS_DETAIL_ENUMRECORDS
9#define HPP_ALIB_ENUMS_DETAIL_ENUMRECORDS 1
11#if !defined(HPP_ALIB_ENUMS_RECORDS)
12# error "ALib sources with ending '.inl' must not be included from outside."
15#if !defined(HPP_ALIB_LANG_INTEGERS)
20namespace alib {
namespace enums {
62template<
typename TEnum>
65 #if !defined(ALIB_DOX)
70 using TIntegral=
typename std::underlying_type<TEnum>::type;
96 template <
typename... TArgs>
97 Node( TEnum element, TArgs&&... args) noexcept
99 ,
record ( std::forward<TArgs>(args)... )
120 while( (*last) !=
nullptr )
121 last= &(*last)->
next;
ALIB_API void setEnumRecord(const std::type_info &rtti, integer integral, const void *record)
ALIB_API const void * getEnumRecord(const std::type_info &rtti, integer integral)
constexpr std::underlying_type< TEnum >::type UnderlyingIntegral(TEnum element) noexcept(true)
lang::integer integer
Type alias in namespace alib.
Node(TEnum element, TArgs &&... args) noexcept
typename std::underlying_type< TEnum >::type TIntegral
typename T_EnumRecords< TEnum >::Type TRecord
Node ** getPointerToLast()