8 #ifndef _UGCS_VSM_ENUM_SET_H_
9 #define _UGCS_VSM_ENUM_SET_H_
19 template<
typename Enum_type>
23 template<
typename... Enum_types>
26 Set_recursive(values...);
33 set.set(static_cast<uint32_t>(value), present);
47 return set.test(static_cast<uint32_t>(value));
54 return set == other.set;
59 template<
typename... Enum_types>
61 Set_recursive(Enum_type
value, Enum_types... values)
64 Set_recursive(values...);
74 std::bitset<static_cast<uint32_t>(Enum_type::LAST)> set;
Enum_set(Enum_types...values)
Construct the set based on arbitrary set of values.
Definition: enum_set.h:24
bool operator==(const Enum_set &other) const
Equality operator.
Definition: enum_set.h:52
Convenient set of enum values.
Definition: enum_set.h:20
void Set(Enum_type value, bool present=true)
Set enum value presence to true or false.
Definition: enum_set.h:31
void Reset()
Reset state to empty.
Definition: enum_set.h:38
bool Is_set(Enum_type value) const
Check if enum value is present or not.
Definition: enum_set.h:45
T value
Stored value (in wire byte order).
Definition: endian.h:376