![]() |
IOLink
IOL_v1.1.0_release
|
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) |
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:
| EnumType | The enum to wrap. |