13 #include "../internal/helpers.h"
19 template <
class t_Visitor,
class t_BetterEnum,
class t_Flags>
24 const typename t_BetterEnum::_integral * = NULL,
25 const typename t_BetterEnum::_value_iterable * = NULL,
26 const typename t_BetterEnum::_name_iterable * = NULL,
27 const typename t_BetterEnum::_value_iterator * = NULL,
28 const typename t_BetterEnum::_name_iterator * = NULL)
30 ARILES2_TRACE_FUNCTION;
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 * = NULL,
49 const typename t_BetterEnum::_value_iterable * = NULL,
50 const typename t_BetterEnum::_name_iterable * = NULL,
51 const typename t_BetterEnum::_value_iterator * = NULL,
52 const typename t_BetterEnum::_name_iterator * = NULL)
54 ARILES2_TRACE_FUNCTION;
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,
70 const typename t_Visitor::Parameters & ,
71 const typename t_BetterEnum::_integral * = NULL,
72 const typename t_BetterEnum::_value_iterable * = NULL,
73 const typename t_BetterEnum::_name_iterable * = NULL,
74 const typename t_BetterEnum::_value_iterator * = NULL,
75 const typename t_BetterEnum::_name_iterator * = NULL)
77 ARILES2_TRACE_FUNCTION;
78 visitor.equal_ &= (left == right);
89 template <
class t_Visitor,
class t_BetterEnum>
93 const typename t_Visitor::Parameters & ,
94 const typename t_BetterEnum::_integral * = NULL,
95 const typename t_BetterEnum::_value_iterable * = NULL,
96 const typename t_BetterEnum::_name_iterable * = NULL,
97 const typename t_BetterEnum::_value_iterator * = NULL,
98 const typename t_BetterEnum::_name_iterator * = NULL)
100 ARILES2_TRACE_FUNCTION;
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,
120 const typename t_Visitor::Parameters & ,
121 const typename t_BetterEnum::_integral * = NULL,
122 const typename t_BetterEnum::_value_iterable * = NULL,
123 const typename t_BetterEnum::_name_iterable * = NULL,
124 const typename t_BetterEnum::_value_iterator * = NULL,
125 const typename t_BetterEnum::_name_iterator * = NULL)
127 ARILES2_TRACE_FUNCTION;
135 template <
class t_Visitor,
class t_BetterEnum>
138 const t_BetterEnum &left,
140 const typename t_Visitor::Parameters & ,
141 const typename t_BetterEnum::_integral * = NULL,
142 const typename t_BetterEnum::_value_iterable * = NULL,
143 const typename t_BetterEnum::_name_iterable * = NULL,
144 const typename t_BetterEnum::_value_iterator * = NULL,
145 const typename t_BetterEnum::_name_iterator * = NULL)
147 ARILES2_TRACE_FUNCTION;