| IOLink 1.11.0

Loading...
Searching...
No Matches
Public Member Functions | List of all members
iolink::FlagSet< EnumType > Class Template Reference

Template class to handle a flags system from an enum. More...

`#include <iolink/FlagSet.h>`

## Public Member Functions
| FlagSet ()
| Initialize with no flags set.
| FlagSet (uint64_t value)
| Initialize from a value.
| FlagSet (EnumType flags)
| Initialize from a value from the wrapped enum type.
| FlagSet (const FlagSet &other)=default
FlagSet & | operator= (const FlagSet &other)=default
| FlagSet (FlagSet &&other) noexcept=default
FlagSet & | operator= (FlagSet &&other) noexcept=default
uint64_t | value () const
| Return the internal value.
bool | has (FlagSet flags) const
| Check if a given set of flags is true.
void | add (FlagSet flags)
| Set the given set of flags to true.
void | remove (FlagSet flags)
| Set the given set of flags to false.
bool | operator== (FlagSet flags) const
bool | operator!= (FlagSet flags) const
FlagSet & | operator|= (FlagSet flags)
FlagSet & | operator&= (FlagSet flags)
FlagSet & | operator^= (FlagSet flags)
FlagSet | operator| (FlagSet flags)
FlagSet | operator& (FlagSet flags)
FlagSet | operator^ (FlagSet flags)

## Detailed Description

template<typename EnumType>
class iolink::FlagSet< EnumType >

Template class to handle a flags system from an enum.

The wrapped enum must have the values set to follow a flags logic, flags values must be multiples of two. The enum can also have shorcut values that combines multiple basic values.

Setup:

// our enum to wrap
enum class TestEnum
{
Value1 = 0x1, // basic value: 001
Value2 = 0x2, // basic value: 010
Value3 = 0x4, // basic value: 100
// Value1 and Value2
Combo1 = 0x3, // shortcut value: 011
// Value1 and Value3
Combo2 = 0x5, // shortcut value: 101
};
// defines bitwise operators on enum
IOLINK_DEFINE_ENUM_BITWISE_OPERATORS(TestEnum)
// alias on template type
using TestFlagSet = FlagSet<EnumType>;
iolink::FlagSet
Template class to handle a flags system from an enum.
Definition FlagSet.h:43

Template Parameters

  EnumType | The enum to wrap.

Examples
  customImageView.cpp.

The documentation for this class was generated from the following file:

- iolink/public/include/iolink/FlagSet.h