16template<
typename TEnum>
17 requires enumrecords::HasRecords<TEnum>
33 template<
typename... TArgs>
36 ,
record(std::forward<TArgs>(args)...) {}
57template<
typename TEnum,
typename... TArgs>
59void Bootstrap(TEnum element, TArgs &&... args)
noexcept {
61 auto **lastP = records.getPointerToLast();
68 TEnum>::Node>(element, std::forward<TArgs>(args)...);
71 (*lastP)->next =
nullptr;
94template<
typename TEnum>
97 auto * table = definitions.begin();
99 auto **lastP = records.getPointerToLast();
100 for (
size_t i = 0; i != definitions.size(); ++i) {
107 TEnum>::Node>(table[i].element, table[i].record);
110 lastP = &(*lastP)->next;
138template<
typename TEnum>
146 auto **lastP = records.getPointerToLast();
156 element->record.Parse();
161 lastP = &element->next;
static T & GetSingleton()
void Bootstrap(camp::Camp &camp, const NString &name, character innerDelim=',', character outerDelim=',')
Details of namespace alib::enumrecords.
void setEnumRecord(const std::type_info &rtti, integer elementValue, const void *record)
ALIB_DLL TMonoAllocator< lang::HeapAllocator > GLOBAL_ALLOCATOR
constexpr NString NULL_NSTRING
A nulled string of the narrow character type.
lang::integer integer
Type alias in namespace alib.
lang::HeapAllocator HeapAllocator
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
characters::character character
Type alias in namespace alib.
void Type
The data type associated with elements of TEnum.
static ALIB_DLL void OuterDelim()
static ALIB_DLL Substring Input
The remaining input string.
static ALIB_DLL void Get(String &result, bool isLastField=false)
static ALIB_DLL void Initialize(const String &input, character innerDelim, character outerDelim, const NString &resourceCategory, const NString &resourceName)
static ALIB_DLL void assertEndOfInput()
TEnum element
The enumeration element.
Initializer(TEnum elem, TArgs &&... args) noexcept
typename RecordsTraits< TEnum >::Type TRecord
The enum's associated record type.
TRecord record
The static data record.
A node of the forward list that contains the custom record data.