template class ugcs::vsm::Enum_set

Overview

Convenient set of enum values. More…

#include <enum_set.h>

template <typename Enum_type>
class Enum_set
{
public:
    // construction

    template <typename... Enum_types>
    Enum_set(Enum_types... values);

    // methods

    void Set(Enum_type value, bool present = true);
    void Reset();
    bool Is_set(Enum_type value) const;
    bool operator == (const Enum_set& other) const;
};

Detailed Documentation

Convenient set of enum values.

Enum_type should have field named LAST as a last enum item which is used to know the size of the enum.

Construction

template <typename... Enum_types>
Enum_set(Enum_types... values)

Construct the set based on arbitrary set of values.

Methods

void Set(Enum_type value, bool present = true)

Set enum value presence to true or false.

void Reset()

Reset state to empty.

bool Is_set(Enum_type value) const

Check if enum value is present or not.

bool operator == (const Enum_set& other) const

Equality operator.