13 #include "../internal/helpers.h"
19 template <
class t_Visitor,
class t_BetterEnum,
class t_Flags>
24 const typename t_BetterEnum::_integral * =
nullptr,
25 const typename t_BetterEnum::_value_iterable * =
nullptr,
26 const typename t_BetterEnum::_name_iterable * =
nullptr,
27 const typename t_BetterEnum::_value_iterator * =
nullptr,
28 const typename t_BetterEnum::_name_iterator * =
nullptr)
31 std::string enum_value;
32 visitor.readElement(enum_value);
33 entry = t_BetterEnum::_from_string_nocase(enum_value.c_str());
43 template <
class t_Visitor,
class t_BetterEnum,
class t_Flags>
46 const t_BetterEnum &entry,
48 const typename t_BetterEnum::_integral * =
nullptr,
49 const typename t_BetterEnum::_value_iterable * =
nullptr,
50 const typename t_BetterEnum::_name_iterable * =
nullptr,
51 const typename t_BetterEnum::_value_iterator * =
nullptr,
52 const typename t_BetterEnum::_name_iterator * =
nullptr)
55 writer.writeElement(std::string(entry._to_string()), param);
65 template <
class t_Visitor,
class t_BetterEnum>
68 const t_BetterEnum &left,
69 const t_BetterEnum &right,
71 const typename t_BetterEnum::_integral * =
nullptr,
72 const typename t_BetterEnum::_value_iterable * =
nullptr,
73 const typename t_BetterEnum::_name_iterable * =
nullptr,
74 const typename t_BetterEnum::_value_iterator * =
nullptr,
75 const typename t_BetterEnum::_name_iterator * =
nullptr)
78 visitor.equal_ &= (left == right);
89 template <
class t_Visitor,
class t_BetterEnum>
94 const typename t_BetterEnum::_integral * =
nullptr,
95 const typename t_BetterEnum::_value_iterable * =
nullptr,
96 const typename t_BetterEnum::_name_iterable * =
nullptr,
97 const typename t_BetterEnum::_value_iterator * =
nullptr,
98 const typename t_BetterEnum::_name_iterator * =
nullptr)
101 if (t_BetterEnum::_size() > 0)
103 entry = t_BetterEnum::_values()[0];
115 template <
class t_Visitor,
class t_BetterEnum>
119 const t_BetterEnum &right,
121 const typename t_BetterEnum::_integral * =
nullptr,
122 const typename t_BetterEnum::_value_iterable * =
nullptr,
123 const typename t_BetterEnum::_name_iterable * =
nullptr,
124 const typename t_BetterEnum::_value_iterator * =
nullptr,
125 const typename t_BetterEnum::_name_iterator * =
nullptr)
135 template <
class t_Visitor,
class t_BetterEnum>
138 const t_BetterEnum &left,
141 const typename t_BetterEnum::_integral * =
nullptr,
142 const typename t_BetterEnum::_value_iterable * =
nullptr,
143 const typename t_BetterEnum::_name_iterable * =
nullptr,
144 const typename t_BetterEnum::_value_iterator * =
nullptr,
145 const typename t_BetterEnum::_name_iterator * =
nullptr)
void apply_compare(t_Visitor &visitor, const t_Left &left, const t_Right &right, const typename t_Visitor::Parameters ¶m)
void apply_copyfrom(t_Visitor &visitor, t_Left &left, const t_Right &right, const typename t_Visitor::Parameters ¶m)
void apply_copyto(t_Visitor &visitor, const t_Left &left, t_Right &right, const typename t_Visitor::Parameters ¶m)
visitor::Parameters Parameters
void apply_defaults(const t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters ¶m, ARILES2_IS_BASE_ENABLER(ariles2::defaults::Base, t_Entry))
void apply_read(t_Visitor &visitor, t_Entry &entry, const typename t_Visitor::Parameters ¶meters, ARILES2_IS_BASE_ENABLER(ariles2::read::Base, t_Entry))
void apply_write(t_Visitor &writer, const t_Entry &entry, const typename t_Visitor::Parameters ¶meters, ARILES2_IS_BASE_ENABLER(ariles2::write::Base, t_Entry))
#define CPPUT_TRACE_FUNCTION