15template<
typename TEnum>
16 requires enumrecords::HasRecords<TEnum>
32 template<
typename... TArgs>
35 ,
record(std::forward<TArgs>(args)...) {}
56template<
typename TEnum,
typename... TArgs>
58void Bootstrap(TEnum element, TArgs&&... args)
noexcept {
60 auto** lastP = records.getPointerToLast();
67 TEnum>::Node>(element, std::forward<TArgs>(args)...);
70 (*lastP)->next =
nullptr;
93template<
typename TEnum>
96 auto* table = definitions.begin();
98 auto** lastP = records.getPointerToLast();
99 for (
size_t i = 0; i != definitions.size(); ++i) {
106 TEnum>::Node>(table[i].element, table[i].record);
109 lastP = &(*lastP)->next;
137template<
typename TEnum>
145 auto** lastP = records.getPointerToLast();
155 element->record.Parse();
160 lastP = &element->next;
static T & GetSingleton()
void Bootstrap(camp::Camp &camp, const NString &name, character innerDelim=',', character outerDelim=',')
Details of namespace #"alib::enumrecords;2".
void setEnumRecord(const std::type_info &rtti, integer elementValue, const void *record)
TMonoAllocator< lang::HeapAllocator > GLOBAL_ALLOCATOR
constexpr NString NULL_NSTRING
A nulled string of the narrow character type.
lang::HeapAllocator HeapAllocator
Type alias in namespace alib.
lang::integer integer
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 void Get(String &result, bool isLastField=false)
static void assertEndOfInput()
static Substring Input
The remaining input string.
static void Initialize(const String &input, character innerDelim, character outerDelim, const NString &resourceCategory, const NString &resourceName)
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.